Compare commits

...
2629 Commits
Author SHA1 Message Date
mezz 9274e4fe43 Fix log4j configuration 2017-06-07 22:15:18 -07:00
LexManos c6aa04325e Fix dispensers equipping armor on players in the wrong slot Closes #1649 2015-12-09 21:03:02 -08:00
cpw 6243d2ca4c Merge pull request #2192 from MinecraftModArchive/1.7.10
Fuel Handling Fix
2015-11-15 17:28:54 -05:00
Scott Killen d159876385 Add an event hook to allow overriding of fuels recognized by vanilla fuel handling. 2015-11-15 17:12:52 -05:00
Lex Manos 8edca3ed86 Fixed skulls not placing on fences like vanilla {Vanilla is buggy -.-} Closes #2185 2015-11-13 15:17:50 -08:00
cpw aa8eaf2b28 Fix firing the remap event. It always fires now, and additionally fires when the registry reverts to frozen.
Most mods refer to the gameregistry for ids they care about, so this shouldn't affect anything significantly,
but if your mod was dependent on their being content in the remap event, and only acting on that content,
empty content means it's "reverted to frozen" state - the state at the start of the game.
2015-11-10 16:40:27 -05:00
cpw c474da04b3 Two more corner cases in the oredictionary. Should work for all cases now. 2015-11-09 15:20:53 -05:00
cpw a92f2a263b OreDictionary will warn if there's an invalid ore being registered now, rather than just
using -1 and doing weird things with the list as a result.
2015-10-29 12:46:12 -04:00
cpw 945d3887d2 Fix substitutions for recipes and oredict recipes. Should mean that substitutions start working properly. 2015-10-29 08:46:23 -04:00
LexManos 605457deec Merge pull request #2103 from olee/patch-1
Fix possible crash in EventBus
2015-09-27 14:41:29 -07:00
Björn Zeutzheim ac5c7124de Fix possible crash in EventBus
There is currently no way to check if an event handler has been registered or not.
But when trying to unregister a not-registered event handler, Minecraft crashes with a NullPointerException.
This is a simple fix to prevent such crashes.
2015-08-31 03:39:33 +09:00
cpw c308a47124 Cherry pick some changes from 1.8 for inner class discovery, also fix the negativecache. Closes #1872 2015-07-18 12:47:31 -04:00
cpw 0f456b4684 Be a little bit more helpful when the ObjectHolder misses. Should help figure out what is going in in #2006 2015-07-09 17:05:20 -04:00
cpw 8636eb1883 Wake up the FluidRegistry before any mods start loading. Should stop mods claiming to own water or lava (depending on who accessed
FluidRegistry first)
2015-07-09 16:53:31 -04:00
cpw 50677ad87a Actually rebuild the fluidNames each rebuild, don't just try and force changes in. Should fix #1973 2015-07-09 16:40:51 -04:00
cpw 204cb16bc4 ObjectHolder works great, but it should be a lot less spammy about failed lookups. They're usually mod options. 2015-06-25 14:41:45 -04:00
cpw 2c24c7618a Mods that are extracted to the mods dir by unzipping or whatever will now cause the game to crash. Too much info is in the META-INF now,
and more will be being added. Extracting to the mods dir just completely breaks that.
2015-06-20 14:47:55 -04:00
Lex Manos 7041fbc27e Time each bar in the loading screen and print it to the log, useful information to see where most time is spent in loading. 2015-06-18 22:18:27 -07:00
Lex Manos e519278888 Add TextureManager to loading screen. 2015-06-18 22:17:21 -07:00
Lex Manos 4235ca36ea Make TextureMap for items and blocks skip the first pass of loading/stitching textures.
Should decrease loading times for large packs.
May cause issues with some mods so use -Dfml.skipFirstTextureLoad=false to disable.
2015-06-18 20:13:31 -07:00
Lex Manos 6527792d06 Add the stitching allocation stage to loading screen. 2015-06-18 20:13:17 -07:00
Lex Manos 716dfdae47 Create config folder in SplashProgress if it does not exist. 2015-06-18 20:11:23 -07:00
Lex Manos e7724c13cc Fixed Wavefront Object Importer reading files with integer values. Closes #1651, #1654 2015-06-17 15:48:22 -07:00
Lex Manos c50adf2433 Include the thread state in the potential error handleing for SplashProgress. 2015-06-16 15:26:00 -07:00
Lex Manos 64263a9f8e Throw more descriptive errors when mods attempt to register invalid global entity IDs. 2015-06-14 17:06:00 -07:00
Lex Manos b3a1548cfa Cleanup mod state dump to be easier to read by displaying the states in abreviation and placing them before the mod info. 2015-06-09 23:06:06 -07:00
Lex Manos b94c2799ab Cleanup mod signature data table. Easily seperating those mods with signatures vs those with none. 2015-06-09 22:25:13 -07:00
Lex Manos d4f6e9e419 Quiet CrashReport class pre-loading debug, no flag to re-enable. 2015-06-09 21:37:33 -07:00
Lex Manos 847c0246cd Quiet FMLControlledNamespacedRegistry debug spam by default. Reenable using -Dfml.debugRegistryEntries=true. 2015-06-09 21:33:52 -07:00
Lex Manos b985384fab Quiet ClassPatchManager debug spam by default. Reenable using -Dfml.debugClassPatchManager=true. 2015-06-09 21:31:18 -07:00
Lex Manos 851f9c1da6 Cleanup some spammy output. 2015-06-09 21:20:53 -07:00
Lex Manos 9ef7b13442 Bump version for new RB. 2015-06-09 15:06:42 -07:00
cpw 63f2300794 Fix up the client/server fluid race condition that could cause the game to bail when an SSP game connects.
There's still a teeny gap, but it's MUCH less prominent than it was before.
2015-06-03 19:26:53 -04:00
cpw f8cb411df1 So we can't print a lot of unicode in the splash screen, so restrict to a hard subset we know we CAN print, closes #1910 2015-06-02 07:24:26 -04:00
Lex Manos e6eeb03108 Finish loading screen before going fullscreen. Closes MinecraftForge/FML#662
(cherry picked from commit 19d7e16fa6)

Conflicts:
	fml/patches/minecraft/net/minecraft/client/Minecraft.java.patch
2015-06-01 17:15:06 -04:00
Lex Manos f088b1b460 Attempt to disable the new splash screen if there are errors detected finishing up. Print a slightly more helpful error message.
(cherry picked from commit e3211eec04)

Conflicts:
	fml/src/main/java/cpw/mods/fml/client/SplashProgress.java
2015-06-01 17:09:28 -04:00
cpw bd6630810f Add in an ItemStackHolder - a way to inject ItemStacks without having to have complex lookup code everywhere.
Example: https://gist.github.com/cpw/9af398451a20459ac263
2015-05-30 14:07:54 -04:00
cpw 06398fa259 Clean up transformers a bit. Can't use COMPUTE_FRAMES even though it's required - the game refuses to even
run if I do. Note for j8: when we force Java8 classes, all coremods will need a thorough overhaul - the
current way we do things is not sustainable when Java8 becomes the universal norm.
2015-05-17 10:35:56 -04:00
cpw 3bbf5c04a6 Strip control codes in progress bar messages. They cause crashes sometimes. 2015-05-17 10:15:44 -04:00
cpw 686db5e5eb Hardcode the FML version in-game as a specific value. 2015-05-16 13:43:35 -04:00
cpw 5fe653cf82 Attempt to fix the slow loading problem. Instead of forcing the main thread to wait around
on every call to processWindowMessages, we will simply skip it, if the mutex is already
claimed by the display thread. This should fix slow loading issues seen by some with
the new loading screen.
2015-05-16 12:55:15 -04:00
cpw dca8a4a550 Merged FML @ 1.7.10 2015-05-13 20:00:48 -04:00
cpw 4270f0fb4a MinecraftForge/FML@0b84b6aa29 Expose the state of the loader 2015-05-07 14:24:14 -04:00
cpw dd49a0cd84 Merge branch '1710ls' into 1.7.10 2015-05-07 14:23:37 -04:00
cpw 76c7177553 Expose the state of the loader 2015-05-07 14:17:45 -04:00
RainWarrior 88a7c0b233 Updated FML:
MinecraftForge/FML@2ed00c4da0 Splash progress screen will not load in the presence of optifine anymore.
MinecraftForge/FML@adcf2247c6 Loading screen: moved config file to the standard config directory; added the option to load textures from the custom resource pack
MinecraftForge/FML@91338433fa Add classloader exclusion for ASM
MinecraftForge/FML@7c10b93a2d Synchronize the available libraries. Turns out we've been forcing a newer apache commons-lang(3.2.1) for a long time, also sync the dev guava - we've been forcing 17 for a long time too. Bumping commons-lang to 3.3.2 since that's what Mojang are shipping with 1.8. It has no observable ill effects Closes MinecraftForge/FML#651
MinecraftForge/FML@8ccfa24764 Merge pull request MinecraftForge/FML#650 from luacs1998/1.7.10
MinecraftForge/FML@b2650a0bdb Optifine can tell us when they're ready for the new splash screen.
MinecraftForge/FML@02a5a58a1c Fix the ordering of the messages, so they make sense now.
MinecraftForge/FML@dda4313539 Revert "Merge pull request MinecraftForge/FML#650 from luacs1998/1.7.10" This undoes the seriously broken change from Sponge to support Mixins, that breaks a wide variety of coremods. Given the widespread incompatibility it introduces, it won't be re-added at 1.7.10.
MinecraftForge/FML@5dbb481732 Eliminated texture name allocation race condition
MinecraftForge/FML@450b82ca0e Updated default forge logo to animated gif; reverted config folder resolution to Minecraft class due to Loader not being initialized at the point it's needed
2015-05-04 22:18:38 +03:00
RainWarrior c28794fe38 Updated default forge logo to animated gif; reverted config folder resolution to Minecraft class due to Loader not being initialized at the point it's needed 2015-05-04 22:10:36 +03:00
RainWarrior fb18c07722 Eliminated texture name allocation race condition 2015-05-04 21:54:33 +03:00
cpw 1b1fbbb70d MinecraftForge/FML@dda4313539 Revert "Merge pull request #650 from luacs1998/1.7.10" This undoes the seriously broken change from Sponge to support Mixins, that breaks a wide variety of coremods. Given the widespread incompatibility it introduces, it won't be re-added at 1.7.10. 2015-05-04 09:26:09 -04:00
cpw 65ab79cf69 Revert "Merge pull request #650 from luacs1998/1.7.10"
This undoes the seriously broken change from Sponge to support Mixins, that breaks
a wide variety of coremods. Given the widespread incompatibility it introduces, it
won't be re-added at 1.7.10.

This reverts commit 8ccfa24764a3f4854f5334c0da1224286175e13b, reversing
changes made to 7c10b93a2ded2799d41b73b67a2766c31e992d8a.
2015-05-04 08:50:08 -04:00
cpw 815b97bf7c MinecraftForge/FML@adcf2247c6 Loading screen: moved config file to the standard config directory; added the option to load textures from the custom resource pack
MinecraftForge/FML@91338433fa Add classloader exclusion for ASM
MinecraftForge/FML@7c10b93a2d Synchronize the available libraries. Turns out we've been forcing a newer apache commons-lang(3.2.1) for a long time, also sync the dev guava - we've been forcing 17 for a long time too. Bumping commons-lang to 3.3.2 since that's what Mojang are shipping with 1.8. It has no observable ill effects Closes #651
MinecraftForge/FML@8ccfa24764 Merge pull request #650 from luacs1998/1.7.10
MinecraftForge/FML@b2650a0bdb Optifine can tell us when they're ready for the new splash screen.
MinecraftForge/FML@02a5a58a1c Fix the ordering of the messages, so they make sense now.
2015-05-02 22:15:08 -04:00
cpw c43e4a8022 Fix the ordering of the messages, so they make sense now. 2015-05-02 22:13:41 -04:00
cpw 858c64ffd3 Optifine can tell us when they're ready for the new splash screen. 2015-04-29 08:15:35 -04:00
LexManos fd8c2ba08c Merge pull request #650 from luacs1998/1.7.10
Add classloader exclusion for ASM
2015-04-27 15:30:09 -07:00
cpw ddc6b0a19f Synchronize the available libraries. Turns out we've been forcing a newer apache commons-lang(3.2.1)
for a long time, also sync the dev guava - we've been forcing 17 for a long time too. Bumping
commons-lang to 3.3.2 since that's what Mojang are shipping with 1.8. It has no observable ill effects
Closes #651
2015-04-26 11:32:28 -04:00
luacs1998 aad4678d40 Add classloader exclusion for ASM 2015-04-26 20:14:35 +08:00
RainWarrior 626a192ce6 Loading screen: moved config file to the standard config directory; added the option to load textures from the custom resource pack 2015-04-26 00:22:43 +03:00
cpw 37075d0437 MinecraftForge/FML@2ed00c4da0 Splash progress screen will not load in the presence of optifine anymore. 2015-04-25 15:06:20 -04:00
cpw 46c5505565 Splash progress screen will not load in the presence of optifine anymore. 2015-04-25 15:05:28 -04:00
cpw 63e71af229 MinecraftForge/FML@94821fac98 Add a config file that lets you add additional soft dependencies at runtime - injectedDependencies.json 2015-04-25 01:34:25 -04:00
cpw 89daceb9eb Add a config file that lets you add additional soft dependencies at runtime - injectedDependencies.json
Example here: https://gist.github.com/cpw/d3edc292631708f2d454
2015-04-25 01:30:17 -04:00
cpw 66a4db5fa0 MinecraftForge/FML@4fe7b469b5 Loading screen: logo rotation is now optional; initial support for animated textures - animation rate is fixed for now.
MinecraftForge/FML@31ae43590a Fix trying to close the screen during error.
2015-04-25 00:47:09 -04:00
cpw 4e6aa905f0 Fix trying to close the screen during error. 2015-04-25 00:41:50 -04:00
RainWarrior 794ff1d1b4 Loading screen: logo rotation is now optional; initial support for animated textures - animation rate is fixed for now. 2015-04-25 05:12:02 +03:00
cpw 55cbba0764 MinecraftForge/FML@36688e781a Add in resource reloading to the bar. Tidy up some of the labels a bit.
MinecraftForge/FML@a1dc465a55 More progress bar action!
MinecraftForge/FML@bfcbf4ef43 More progress bar hooks
MinecraftForge/FML@a6670c415e Thread errors should be correctly displayed in the crash report now
MinecraftForge/FML@9a16d26186 fixed bar text positioning
MinecraftForge/FML@0059c63028 Track mipmaps and texture upload
MinecraftForge/FML@ef5f809752 Fix broken log message in vanilla.
2015-04-24 19:16:55 -04:00
cpw 1fdd18398e Fix broken log message in vanilla. 2015-04-24 19:02:54 -04:00
cpw 454e2e36a4 Track mipmaps and texture upload 2015-04-24 19:01:49 -04:00
RainWarrior 753115678a fixed bar text positioning 2015-04-25 01:37:39 +03:00
RainWarrior c8acd763ef Thread errors should be correctly displayed in the crash report now 2015-04-25 01:27:57 +03:00
cpw 3d03b31d00 More progress bar hooks 2015-04-24 17:47:39 -04:00
cpw d18d493174 More progress bar action! 2015-04-24 17:11:49 -04:00
cpw ab3413a31e Add in resource reloading to the bar. Tidy up some of the labels a bit. 2015-04-24 16:00:22 -04:00
RainWarrior a297a615b9 MinecraftForge/FML@5785a9c9e8 Fix up multiple injections of cmdline files via versionspecificmoddir. Closes #645
MinecraftForge/FML@bd117be9c3 Correctly track exceptions thrown in the loading screen rendering thread
2015-04-24 05:51:44 +03:00
RainWarrior 53a21e7e47 Correctly track exceptions thrown in the loading screen rendering thread 2015-04-24 05:38:32 +03:00
cpw 87e6c29028 Fix up multiple injections of cmdline files via versionspecificmoddir.
Closes #645
2015-04-22 08:31:25 -04:00
cpw c12bb689fb MinecraftForge/FML@a39482c4b7 Splash screen implementation
MinecraftForge/FML@01fea095cd Merge branch '1.7.10-load-progress' of github.com:RainWarrior/FML into 1.7.10
MinecraftForge/FML@364b4bbbb0 Call some loader stuffs
MinecraftForge/FML@61a891280d Make sure to close the splash screen if there's gonna be an error display
2015-04-21 00:30:52 -04:00
cpw ba354da317 Make sure to close the splash screen if there's gonna be an error display 2015-04-21 00:28:19 -04:00
cpw 6398961c48 Call some loader stuffs 2015-04-20 23:34:36 -04:00
cpw 8c54026f2d Merge branch '1.7.10-load-progress' of github.com:RainWarrior/FML into 1.7.10 2015-04-20 23:15:37 -04:00
RainWarrior 5b06b71d04 Splash screen implementation 2015-04-21 06:09:29 +03:00
cpw 50215307f2 MinecraftForge/FML@d14d1a8fea Update to use the inherited jar format. Simplifies a lot.. 2015-04-20 22:27:10 -04:00
cpw b049b39760 Update to use the inherited jar format. Simplifies a lot.. 2015-04-20 22:25:29 -04:00
cpw 96cbadb874 Expose the fluid that a block was constructed with, useful for 'non-default'
configuration of fluidblocks. Shouldn't be used outside of this purpose.
2015-04-20 10:29:04 -04:00
cpw 50608986fe Replace the OLD fluid in the fluidID map, not the new one.. 2015-04-20 10:01:36 -04:00
cpw 7bbe8df2b8 Fix static initializer derp. 2015-04-20 09:26:27 -04:00
cpw 0543828603 Make FluidStack hold a delegate for the fluid. This can then float based on what is "live" at present. 2015-04-20 09:06:23 -04:00
cpw 7e9d2fb509 Reformat ItemArmor$ArmorMaterial.getBaseItem to use an if/then/else structure. The switch
causes the generation of an internal class which may derp custom armor addition.
Closes #1799
2015-04-19 12:04:22 -04:00
cpw dcb2f2588c Actually use the override constraint in ticket requests. Closes #1802 2015-04-19 11:57:39 -04:00
cpw 178acfbb20 Change logging to avoid the String.format bug. Closes #1809 2015-04-19 11:52:23 -04:00
cpw 57408af2a3 MinecraftForge/FML@8f9e3a7e30 Exceptions during construction phase should not propogate and cause an immediate crash. Closes #638 2015-04-18 21:54:01 -04:00
cpw e1ed3c07c2 Exceptions during construction phase should not propogate and cause an immediate crash. Closes #638 2015-04-18 21:48:49 -04:00
cpw 54af750717 Verify that the fluid registry doesn't contain "junk" fluids thru reflection. 2015-04-18 21:37:45 -04:00
Lex Manos 1effc27790 Fixed NBTSizeTracker missing a lot of data being read. Also made new NBT object allocation claim 32-bits in the size tracker.
(cherry picked from commit de066a86da)

Conflicts:
	patches/minecraft/net/minecraft/nbt/CompressedStreamTools.java.patch
	patches/minecraft/net/minecraft/nbt/NBTTagList.java.patch
2015-04-18 21:22:44 -04:00
KingLemming 61984561cd Merge pull request #1805 from KingLemming/1.7.10
OreDict functionality updates.
2015-04-16 17:20:43 -04:00
King Lemming cd3bbfb02c Adds some new Ore querying functionality.
Also attempts to size initial Hashmaps in a logical manner.

Signed-off-by: King Lemming <[email protected]>
2015-04-16 17:18:37 -04:00
LexManos 475d7fc02d Revert KL's change, requesting a ore WILL register it.
Registering like this and returning a new empty list allows for modders to register their recipes and such without requiring to be executed after someone actually adds an item. If handled properly this allows for more flexible load orders, and more responsive code.
2015-04-13 21:28:16 -07:00
KingLemming b30b551197 Merge pull request #1796 from KingLemming/1.7.10
Adjusts OreDictionary to prevent invalid registrations.
2015-04-13 22:41:25 -04:00
King Lemming 3cd7f6bd87 Adjusts OreDictionary to prevent invalid registrations.
Getting Ore Names for a non-existent ore will no longer automatically add that Name to the list nor generate an ID.

Tweaks a warning message in the FluidContainerRegistry. No functionality change.

Signed-off-by: King Lemming <[email protected]>
2015-04-13 22:40:38 -04:00
cpw 277495c8e4 MinecraftForge/FML@dfce4cd8d0 Allow registering custom language adapters.
MinecraftForge/FML@9fecd72cf0 Some tidyup of the PR
MinecraftForge/FML@10ac2a4fd9 Fix itemCtorArgs javadoc in registerBlock
MinecraftForge/FML@86f70d37a4 Patch TracingPrintStream to handle Kotlin IO.
2015-04-11 18:20:11 -04:00
Arkan Emberwalker 5f7c3bd72d Patch TracingPrintStream to handle Kotlin IO.
Kotlins internal IO suite wraps the old System.out style, so descend
deeper in the stack when kotlin.io is detected.
2015-04-11 18:15:35 -04:00
tterrag1098 592c9c8e42 Fix itemCtorArgs javadoc in registerBlock 2015-04-11 18:09:31 -04:00
cpw 4af2ba3949 Some tidyup of the PR 2015-04-11 18:05:00 -04:00
Arkan Emberwalker 0055973f43 Allow registering custom language adapters.
Allows external mods/library jars to provide language adapters for
languages not supported in native Forge.
2015-04-11 18:05:00 -04:00
cpw 5c88164211 And handle the null case in the constructor itself. Closes #1794 (again) 2015-04-11 17:38:15 -04:00
cpw 230d757a89 Fix NPE - Closes #1794 2015-04-11 17:27:14 -04:00
cpw 9671179453 Fluids are now tracked internally by mod. This allows for the server and the world to specify a "default"
in the case of a possible alternative fluid implementation. If you always called registerFluid, things
should work pretty seamlessly, but if you didn't (gating with an isFluidRegistered check for example)
you should change to register anyway. This way, even if you're not default in the overall instance, you may
become default if you're the only mod present on a server, for example, or in a world save.

This should radically decrease the mixups caused by mod load ordering problems, and other issues around fluid
tracking.
2015-04-11 17:18:53 -04:00
cpw eb12936a52 MinecraftForge/FML@0da1263ff9 Enhance error output for bad textures a bit more and try and capture more types of error.. 2015-04-11 12:30:20 -04:00
cpw fa5ab52acd Enhance error output for bad textures a bit more and try and capture more types of error.. 2015-04-11 12:12:37 -04:00
cpw 345d905438 MinecraftForge/FML@be5ec06e31 Cleaning up the missing resource stack spam, and condensing the information into a usefully understandable format. 2015-04-11 01:03:50 -04:00
cpw c7622c06d7 Cleaning up the missing resource stack spam, and condensing the information into a usefully understandable
format.
2015-04-11 00:52:58 -04:00
cpw 6049d371f3 MinecraftForge/FML@ce791cb1f2 Rework EventSubscriptionTransformer to bake @Cancelable and @HasResult values, should increase EventBus performance even more by removing logic from Event constructors.
MinecraftForge/FML@852710962a Clean up some dead code
2015-04-10 22:46:53 -04:00
cpw 994f722843 Clean up some dead code 2015-04-10 22:34:06 -04:00
Lex Manos 4be96044d0 Rework EventSubscriptionTransformer to bake @Cancelable and @HasResult values, should increase EventBus performance even more by removing logic from Event constructors. 2015-04-10 22:28:39 -04:00
KingLemming 6d3494a853 Merge pull request #1791 from KingLemming/1.7.10-fluid
FCR Warning + Denial
2015-04-10 20:11:17 -04:00
King Lemming 37d63b3fe9 Adds a warning to the FluidContainerRegistry when a mod does something stupid! Also denies the registration.
Signed-off-by: King Lemming <[email protected]>
2015-04-10 20:09:58 -04:00
KingLemming 291c57b624 Merge pull request #1789 from KingLemming/1.7.10-fluid
1.7.10 fluid
2015-04-10 16:41:29 -04:00
King Lemming 186f92479d Fixes FluidContainerRegistry properly - no more corner case where client/server mods disagree.
Also clarifies the 2x Fluid registration error message somewhat.

Signed-off-by: King Lemming <[email protected]>
2015-04-10 16:38:45 -04:00
KingLemming 7e9dfb1a11 Merge pull request #4 from MinecraftForge/1.7.10
1.7.10
2015-04-10 16:24:33 -04:00
KingLemming 806b4a3bdf Merge pull request #1784 from KingLemming/1.7.10-fluid
Change to FluidContainerRegistry
2015-04-09 17:45:09 -04:00
King Lemming 433b7ca589 Fixes #1782
Signed-off-by: King Lemming <[email protected]>
2015-04-09 17:28:20 -04:00
KingLemming 78db5732ca Merge pull request #2 from MinecraftForge/1.7.10
1.7.10
2015-04-09 16:56:04 -04:00
LexManos 24802143eb Merge pull request #1775 from Prototik/patch-1
[1.7.10] Fix FluidRegsitry.registerFluid
2015-04-08 09:25:01 -07:00
Sergey Shatunov a42cf1ae37 Fix FluidRegsitry.registerFluid
FluidRegistry:
```java
    static BiMap<String, Fluid> fluids = HashBiMap.create();
    static BiMap<Fluid, Integer> fluidIDs = HashBiMap.create();
...
    public static boolean registerFluid(Fluid fluid)
    {
        if (fluidIDs.containsKey(fluid.getName()))
            ^^^^^^^
```
There is definitely should be fluids instead fluidIDs. This mistake broke many mods.
2015-04-08 17:26:40 +06:00
Lex Manos 02ebc9ca21 Restore binary compatibility issues in FluidRegistry caused by recent changes. 2015-04-07 20:06:55 -07:00
Lex Manos 1fd39578b0 MinecraftForge/FML@31cf2a9cab Remove J7 only constructor in EnhancedRuntimeException, J6 compiling compatibility restored. 2015-04-07 20:06:01 -07:00
Lex Manos f6c50cc3af Remove J7 only constructor in EnhancedRuntimeException, J6 compiling compatibility restored. 2015-04-07 19:32:25 -07:00
cpw 4f0e2fb9c4 You shouldn't be creating FluidStacks from unregistered Fluids. Warn clearly on failed registrations, and make a useful log message for failed fluidstack
creations. Should help a lot with tracking down broken mods that are doing this wrongly.
2015-04-05 22:48:09 -04:00
King Lemming f7395f517b Allow for duplicate Fluid Blocks. It's annoying to be sure but just as with the OreDictionary, we'll have to handle it.
Signed-off-by: King Lemming <[email protected]>
2015-04-05 22:30:39 -04:00
cpw defaddecec Fix formatting 2015-04-05 22:30:39 -04:00
cpw 7506a5b7ad Add in a fluidid transformer 2015-04-05 22:30:39 -04:00
King Lemming 3fc40b955a Removed fluidID from ItemStack.
This fixes a rather huge issue where FluidStacks on the client could be desynced if a modder was unaware of it.

This is a breaking change but can be mitigated with a transformer to the getter getFluidID().

Signed-off-by: King Lemming <[email protected]>
2015-04-05 22:30:39 -04:00
cpw 38b9febfe5 Forge really should have always supported the concept of an "exact spawn". Individual world providers can still
change this behaviour of course, but for default maps it makes sense to support it as a config option.
2015-04-03 10:31:25 -04:00
cpw e837b2e2cd MinecraftForge/FML@12ccf9cf49 Rather than try to fall back to the backup level.dat in case of weirdness in the ID map, just fail hard. There is probably a serious modder derp in this case and there's nothing FML can do to recover the situation except avoid making it worse.
MinecraftForge/FML@e8cd368da3 It's an IllegalState not an IllegalArgument *sigh*
MinecraftForge/FML@2be9c74342 And fix itemblocks being removed, leaving behind a residual block. This is a legitimate action - use the missing mapping event to let the mod tell us about it
MinecraftForge/FML@7d8804cf65 You can't setAction to BLOCKONLY
MinecraftForge/FML@c73861efe6 Cherry-pick 01aaa7dc97480b381ca0d192ec65016d7baeb747 Fix mods defined via --mods or --modListFile launch args not being searched for coremods. #560
MinecraftForge/FML@94c45b48c1 Fix json cache crash, handle the file much more cleanly. Probably an MC JIRA since it's a vanilla bug. Closes #619
2015-04-03 10:26:17 -04:00
cpw 38cdbc16e2 Fix json cache crash, handle the file much more cleanly. Probably an MC JIRA since
it's a vanilla bug. Closes #619
2015-04-02 13:07:40 -04:00
Matthew Messinger ee414b2037 Cherry-pick 01aaa7dc97480b381ca0d192ec65016d7baeb747
Fix mods defined via --mods or --modListFile launch args not being searched for coremods. #560
2015-04-01 19:51:44 -04:00
cpw e1c83de490 Comment on previous commit fix - it worked. Thanks to skyboy and tterrag for investigating and verifying.
A chest as an acheivement icon will recreate the original problem, for note.
2015-04-01 07:13:14 -04:00
cpw 1b7ce7592c Experimental "fix" for the weird rendering in the Acheivements screen. Thanks skyboy for spotting this. 2015-03-31 20:50:16 -04:00
cpw 0d79aa1e0a You can't setAction to BLOCKONLY 2015-03-31 15:38:53 -04:00
cpw d684a4e066 And fix itemblocks being removed, leaving behind a residual block. This
is a legitimate action - use the missing mapping event to let the mod
tell us about it
2015-03-31 15:29:51 -04:00
cpw 0b8ff5890a It's an IllegalState not an IllegalArgument *sigh* 2015-03-31 15:11:39 -04:00
cpw 0bff21315c Rather than try to fall back to the backup level.dat in case of weirdness
in the ID map, just fail hard. There is probably a serious modder derp in this
case and there's nothing FML can do to recover the situation except avoid
making it worse.
2015-03-31 15:09:49 -04:00
Lex Manos 9e7e9e5cbf MinecraftForge/FML@24cb4a42c4 Enhance output of common FML errors in crash reports and server GUI.
Force load anonymous minecraft classes used in crash reports. This prevents some crashes being hiddedn behind class definiton exceptions.
2015-03-27 02:54:55 -07:00
Lex Manos ddcc6a1aa4 Enhance output of common FML errors in crash reports and server GUI. 2015-03-27 01:40:23 -07:00
cpw ce10d0dfd0 MinecraftForge/FML@4ca6f6e19f What a dumb oversight. One needs to copy the active substitution set to the active gamedata. Doesn't work well otherwise.
MinecraftForge/FML@6f6cec96be Substitutions need to be activated when they're registered, otherwise they won't appear in world, ever.
MinecraftForge/FML@13ac015f0c Change iterator behaviour for the registry - include substitutions in the standard iterator, so that vanilla MC methods visit them (so they can get textures etc). The fml special one only visits the absolute set, used mostly for sanity checking and serialization.
2015-03-22 13:07:06 -04:00
cpw c2f11ecc35 Change iterator behaviour for the registry - include substitutions in the standard iterator, so that
vanilla MC methods visit them (so they can get textures etc). The fml special one only visits the
absolute set, used mostly for sanity checking and serialization.

Closes #618
2015-03-22 12:56:05 -04:00
cpw 2451e49df2 Substitutions need to be activated when they're registered, otherwise they won't appear in world, ever. 2015-03-22 12:54:05 -04:00
cpw 3df54d3d0f What a dumb oversight. One needs to copy the active substitution set to the active gamedata. Doesn't work well otherwise.
Closes #616
2015-03-22 12:03:37 -04:00
cpw c9fd2b6173 MinecraftForge/FML@6b0ae369eb Try and improve performance of the registry by avoiding superType.cast.
MinecraftForge/FML@dfebcafd49 Something I meant to add a long time ago, but it got overlooked. My apologies. Presend the (int) dimension ID in the serverhello packet. This should be 100% backward compatible with existing servers but bumping a server to this version will allow clients with this version as well to now login in dimensions outside the byte range. Probably fixes a bunch of mods that add dimensions.
MinecraftForge/FML@6011419fa0 Clean up my patch. Terrible person I am..
MinecraftForge/FML@c6bbd0e82d Forgot that I need a noarg ctor. I'm so rusty.
MinecraftForge/FML@6edc1635de Need to load the dimension from disk - do it without filling out the player so that the normal player loading (including events) works properly
2015-03-20 16:12:05 -04:00
cpw f4972b7611 Need to load the dimension from disk - do it without filling out the player so that the normal player loading (including events)
works properly
2015-03-20 15:55:16 -04:00
cpw 613c5edc7d Forgot that I need a noarg ctor. I'm so rusty. 2015-03-20 15:11:12 -04:00
cpw a8cbbfcd99 Clean up my patch. Terrible person I am.. 2015-03-20 15:00:19 -04:00
cpw 889c967a5b Something I meant to add a long time ago, but it got overlooked. My apologies. Presend the (int)
dimension ID in the serverhello packet. This should be 100% backward compatible with existing servers
but bumping a server to this version will allow clients with this version as well to now login in
dimensions outside the byte range. Probably fixes a bunch of mods that add dimensions.
2015-03-20 14:19:54 -04:00
cpw 278612ad98 Try and improve performance of the registry by avoiding superType.cast. 2015-03-14 15:32:34 -04:00
Lex Manos 9704f25aa8 Fixed potential NPEs in Structure code caused by componenets not being able to load. 2015-02-05 17:03:43 -08:00
Lex Manos 9c50745bdb Updated FML:
MinecraftForge/FML@1de3bf733a Fix FML's package for net.miencraftforge on maven. Fixes uploading of new builds. Note: 1.7.10 builds are bug fixes only while FML/Forge for 1.8 stabelizes.
MinecraftForge/FML@05ecefb538 Update to ASM5 for Java 8 support
MinecraftForge/FML@1112c455b9 Merge pull request #595 from Grinch/master
2015-02-03 00:26:17 -08:00
LexManos c7c29979c9 Merge pull request #595 from Grinch/master
Update to ASM5 for Java 8 support, IF ANYONE MAKES A MOD THAT REQUIRES JAVA8 BEFORE MINECRAFT FORCES IT ALL USERS REQUESTING SUPPORT WILL BE BANNED FROM ALL FORGE RELATED SERVICES.
2015-01-31 03:37:15 -06:00
Steven Downer 79d224f76e Update to ASM5 for Java 8 support
SpecialSource updated ASM5 and ForgeGradle supports ASM5 as well but
neither FML or Forge were actually updated to support ASM5 opcodes. This
commit resolves this.

Signed-off-by: Steven Downer <[email protected]>
2015-01-28 20:17:21 -06:00
LexManos c9670d3c1d Merge pull request #1646 from Ivorforce/patch-1
Fix fluid tanks incorrectly reading NBT when empty
2015-01-22 21:09:59 -08:00
Ivorius e629774753 Fix fluid tanks incorrectly reading NBT when empty
If the Empty flag was set, the tank would not correctly read the data, keeping the outdated FluidStack instead. This is especially relevant with updatable TileFluidHandler TEs.
2015-01-17 00:36:42 +01:00
LexManos 204c6119e7 Merge pull request #1635 from asiekierka/master
Fix shouldRefresh being too broad in tile entity update
2015-01-11 13:03:00 -08:00
asiekierka 0a707236e1 fix shouldRefresh being too broad in tile entity update 2015-01-11 11:12:54 +01:00
LexManos 465e330566 Merge pull request #1615 from lumien231/master
Fix versionCheck config option
2015-01-09 04:37:26 -08:00
LexManos 7d82925017 Merge pull request #1627 from CovertJaguar/tile-refresh
Bulk Chunk Data packets should also check TileEntity.shouldRefresh().
2015-01-09 03:42:46 -08:00
CovertJaguar 30196b8696 Bulk Chunk Data packets should also check TileEntity.shouldRefresh(). 2015-01-07 15:37:54 -08:00
Lumien 404e8fa89e Fix versionCheck config option 2015-01-01 17:52:44 +01:00
LexManos d5d312b452 Merge pull request #1491 from killjoy1221/master
Fix MC-30864 (sending web links in chat)
2014-12-23 14:33:10 -08:00
LexManos 389abd98c1 Merge pull request #1338 from MinestrapTeam/renderpane
Fix Stained Glass pane rendering issues
2014-12-23 14:03:36 -08:00
LexManos 93445248e6 Merge pull request #1503 from Kittychanley/master
Removed exclusion of white stained glass recipes in ore dictionary.
2014-12-23 12:13:17 -08:00
LexManos 010e687664 Merge pull request #1581 from Lunatrius/fix-chat
Fixed messages not being added to the chat history
2014-12-18 10:33:13 -08:00
Lex Manos 7419c2aa91 Fix incorrect logic in world change clumping. 2014-12-18 08:11:06 -08:00
Lex Manos cd4e73edfa Remove our changes to Stitcher slot allocation. 2014-12-18 08:10:38 -08:00
Lunatrius 9453c1d209 Fixed messages not being added to the chat history and ClientCommandHandler not being called when sleeping. 2014-12-17 03:38:26 +01:00
Lex Manos 64952331e2 Fix texture stitcher not using all avalible spaces. Closes #1557 2014-12-11 16:40:28 -08:00
Lex Manos f60f7d9aa6 Fixed NPE thrown when brewing event is fired and not all slots are filled. 2014-12-11 05:25:13 -08:00
Lex Manos 81086375e8 Expand PlayerWakupEvent to expose the three parameters passed into EntityPlayer.wakeUp. Closes #1486 2014-12-07 05:48:02 -08:00
Lex Manos 4cc278a125 Improved Control of Enchantment.canApplyTogether() in Mod Enchantments, allowing both enchantments to determine if they can apply together. Closes #1434 2014-12-07 05:37:11 -08:00
Lex Manos 35fac1f691 Changed ToolMaterial's repair material to ItemStack version to allow metadata sensitive versions. Closes #1355 2014-12-07 04:29:55 -08:00
Lex Manos 83bcebf3b1 Fix invalid argument being passed to Block.isNormalCube from World.updateNeighbors. Closes #1339 and Closes #1346 2014-12-07 03:49:36 -08:00
Lex Manos 4e39515d12 Add quartz_ore tool init, more mojang special casing -.- Closes #1333 and Closes #1335 2014-12-07 03:43:02 -08:00
Lex Manos 24213a8ca7 Added PotionBrewEvent.Pre/Post. To allow for modification and cancelation of Brewing. Closes #1248 2014-12-07 03:30:52 -08:00
Lex Manos c9fe5ded9b Add LivingHealEvent called from EntityLivingBase.heal() Closes #1282 2014-12-07 02:35:07 -08:00
Lex Manos 877ba864e7 Added CreateSpawnPosition event Closes #1053 2014-12-07 01:52:17 -08:00
Lex Manos 9cf9d6a8e8 Add "sand" to the OreDictionary Closes #1487 2014-12-07 00:44:20 -08:00
Lex Manos 49eeedd854 Fixed bug in ServerConfigurationManager.transferPlayerToDimension where it would send the old dimension's information. Closes #1548 2014-12-07 00:39:30 -08:00
Lex Manos 861c00fdfc Added Explosion Start and Detonate events to control explosion. Closes #1469 2014-12-07 00:27:51 -08:00
LexManos 6910f40fc2 Merge pull request #1547 from Draco18s/patch-1
Added tessellator calls to render the block's back faces, so that the liquid properly renders when the player is immersed in the fluid.
2014-12-06 22:57:21 -08:00
Draco18s bf26e639d9 Update RenderBlockFluid.java
Added tessellator calls to render the block's back faces, so that the liquid properly renders when the player is immersed in the fluid.
2014-12-04 16:50:26 -05:00
Lex Manos 74a57bd9d6 Fix creative picking a CommandBlock minecart returning wrong item. Closes #1523 2014-11-28 06:08:39 -08:00
Kittychanley 4e79117755 Removed exclusion of white stained glass recipes in ore dictionary. Closes #1502 & #1481 2014-11-21 14:13:24 -06:00
LexManos 0e91787efb Merge pull request #1492 from XCompWiz/clientrain
Fixes client-side fake rain
2014-11-10 16:03:29 -08:00
XCompWiz a5358eb916 Fixes client-side fake rain
Changes the updateWeather function in WorldServer to only send the
weather info to players in the correct dimension, rather than all
players on the server. This is what causes the client-side rain, as the
client believes that it has started raining locally, rather than in
another dimension.
2014-11-11 01:39:26 +02:00
Matthew Messinger 21ffd28adb Fix MC-30864 (sending web links in chat) 2014-11-10 15:24:27 -05:00
LexManos 5b82e18afc Merge pull request #1376 from founderio/patch-1
Modify WavefrontObject to allow '.' in group object names
2014-11-04 18:29:12 -08:00
Lex Manos 47305ff691 Player sensitive version of Block.getPickBlock Closes #1348 2014-11-04 18:27:02 -08:00
Lex Manos ef0e0d7393 Fix slots being black due to vanilla blending leakage Forge fixes. Closes #1325 & #1242 2014-11-04 18:07:42 -08:00
LexManos a8cce392ab Merge pull request #1005 from luacs1998/patch-1
Create CONTRIBUTING.md
2014-10-22 02:38:09 -07:00
LexManos bcaf8b7e79 Merge pull request #1450 from Adubbz/master
Fixed desert list initialization. Fixes #1447
2014-10-17 15:56:00 -07:00
Lex Manos 31e330090a Bump version for new RB. 2014-10-16 20:49:33 -07:00
Lex Manos 2af2795288 Fix logic error in Blodd's Snapshot capture that caused blocks to not be updated to the client. Closes #1451 2014-10-16 20:49:00 -07:00
LexManos 5aa313cf00 Merge pull request #1461 from Azanor/master
Fix for biome weights under 10
2014-10-16 06:24:48 -07:00
Azanor 46dfaa6d0c Fix for biome weights under 10
This solves the problem where custom mod biomes with weights under 10
not being generated in the world.

Cleaned up the code and made the patch smaller
2014-10-16 12:28:10 +02:00
LexManos 6283e9327e Merge pull request #1368 from matthewprenger/patch-1
Added username cache
2014-10-15 17:16:13 -07:00
matthewprenger 9c2f0ddfad Add username cache for determining a player's last known username 2014-10-15 16:14:36 -05:00
LexManos 619ceefa49 Merge pull request #1457 from AbrarSyed/master
implemented crowdin support
2014-10-15 01:27:44 -07:00
AbrarSyed 8af641a86d implemented crowdin support 2014-10-15 01:07:15 -05:00
Lex Manos ae4f979318 Compleetly disable stencil bits unless told not to by using the -Dforge.forceDisplayStencil=true flag. Should solve the 'menu in bottom corner' issue with Intel Integrated graphics cards. 2014-10-12 22:11:40 -07:00
LexManos 3aef547046 Merge pull request #1418 from Parker8283/wakeupevent
Added PlayerWakeUpEvent
2014-10-11 11:34:50 -07:00
Parker ff36d4f1d3 Added PlayerWakeUpEvent 2014-10-11 14:13:25 -04:00
Adubbz de5daadf11 Fixed desert list initialization. Fixes #1447 2014-10-10 21:22:47 +11:00
LexManos 38275c8232 Merge pull request #1364 from Adubbz/master
Fixed biome weights not working with non multiples of 10
2014-10-08 17:58:26 -07:00
Lex Manos b0190bb50d Fix vanilla lighting issue and blending issues in achievements gui. Closes #1445 2014-10-08 17:54:20 -07:00
Lex Manos 97bdcc7991 Fix FML's package for net.miencraftforge on maven. Fixes uploading of new builds.
Note: 1.7.10 builds are bug fixes only while FML/Forge for 1.8 stabelizes.
2014-10-06 15:36:17 -07:00
Lex Manos 3c51b1a8c8 MinecraftForge/FML@d00feb58c7 Remove debug code that was causing console spam in Forge. 2014-10-06 15:30:58 -07:00
Lex Manos 471c9c5fd5 Remove debug code that was causing console spam in Forge. 2014-10-06 15:28:29 -07:00
Lex Manos 676ecab52e Disable by default the Display Stencil bits. Keep FBO bits. Acording to Mumfery and ChickenBones, it should not be nessasary and should solve the 1/4 main menu issue. Use -Dforge.forceDisplayStencil=true to enable old behavior. 2014-10-06 15:12:12 -07:00
LexManos 6da8a19094 Merge pull request #1219 from Lunatrius/master
Prevent client only commands from bleeding through to the server.
2014-10-06 14:50:47 -07:00
LexManos 9879143b96 Merge pull request #1367 from bloodmc/blockplace
Added PlaceEvent and MultiPlaceEvent which fires before placing a block.
2014-10-02 13:32:02 -07:00
bloodshot 37f91681d9 Added PlaceEvent and MultiPlaceEvent which fires before placing a block.
Before calling "ItemStack.tryPlaceItemInWorld", a recording flag is turned on for
setBlock to capture a blocksnapshot for each block that attempts to be placed.

If 1 block is captured, a "BlockEvent.PlaceEvent" is fired to notify mods.
If 2 or more blocks are captured, a "BlockEvent.PlaceEvent" is fired first with the first block
captured followed by a "BlockEvent.MultiPlaceEvent" with all captured blocks. This extra event
is required for items that have the ability to place 2 or more blocks such as a BlockBed.

If either event is cancelled, the recorded block snapshot(s), item stacksize, and item meta will
revert back to the captured snapshot(s).
If the events are not cancelled, a notification will be sent to clients and block physics will be updated.

What this means for mods is Forge will be able to capture all player block placement automatically and fire
a PlaceEvent and/or MultiPlaceEvent.
If for whatever reason your mod does not use the standard placement methods then you will need to fire the
appropriate placement events in order to notify mods/servers.

This commit also includes a new utility class called BlockSnapshot which is serializable. This new class is used in conjunction with
both PlaceEvent and MultiPlaceEvent in order to record a snapshot of block space before it is altered. This
allows us to restore the block(s) if an event is cancelled. The class also provides the ability to restore a snapshot
to any location using the restoreToLocation method. This should be helpful to many mods that are looking to be able
to capture block data then restore it to back to any location required.
2014-10-02 11:33:25 -04:00
Lunatrius 7cff6f4c80 Prevent client only commands from bleeding through to the server. 2014-09-17 01:48:44 +02:00
cpw 9ccf454b88 Merge branch 'new' 2014-09-14 18:20:53 -04:00
cpw 97f715bf6d MinecraftForge/FML@63b64482e6 Add jsr305 dev-time dependancy for Nullable/Nonnull annotations. Unneeded at runtime.
MinecraftForge/FML@5365f5ea3e Add IEventExceptionHandler for EventBus to allow special handeling exceptions that are fired while running an event. Events now track what 'phase' they are in during the execution process. Each EventPriority is a 'phase'. An exception is thrown if the event attempts to set its phase to a previous one.
2014-09-14 18:20:06 -04:00
LexManos 647e476c8f Merge pull request #1402 from nekosune/new
Fixed Clientside GameProfile UUID being null on offline mode
2014-09-09 17:06:35 -07:00
nekosune f9c68bba81 Fixed Clientside GameProfile UUID being null on offline mode 2014-09-10 00:24:36 +01:00
LexManos e2ae05ccb6 Merge pull request #1395 from lawremi/rendergasfix
Fix rendering height of non-liquid fluids
2014-09-09 13:28:54 -07:00
Lex Manos 5f65fb754e Add IEventExceptionHandler for EventBus to allow special handeling exceptions that are fired while running an event.
Events now track what 'phase' they are in during the execution process. Each EventPriority is a 'phase'.
An exception is thrown if the event attempts to set its phase to a previous one.
2014-09-08 17:54:41 -07:00
Lex Manos 6192119682 Add jsr305 dev-time dependancy for Nullable/Nonnull annotations. Unneeded at runtime. 2014-09-08 17:50:46 -07:00
Michael Lawrence 71cb9dfe52 check for IFluidBlock (in addition to Material.liquid) when
determining render height so that non-liquids (gases) render correctly
2014-09-08 05:51:34 -07:00
cpw 69700d2227 MinecraftForge/FML@7ab69aff2e Clean up import
MinecraftForge/FML@c5a90bd456 Is vanilla possible with this mod load, side tests.
MinecraftForge/FML@cad11f3165 Allow injecting alternative container types. This is the core support code for allowing sponge plugins!
2014-09-08 08:52:45 +12:00
cpw ad752886b0 Allow injecting alternative container types. This is the core support code for allowing sponge plugins! 2014-09-07 20:51:54 +12:00
cpw 3dae97cb4a Is vanilla possible with this mod load, side tests. 2014-09-07 20:13:37 +12:00
cpw 509d244ed4 Clean up import 2014-09-07 19:59:56 +12:00
LexManos a7ce64dfbc Merge pull request #1390 from diesieben07/beacon-items
Added Item#isBeaconpayment
2014-09-06 15:55:13 -07:00
diesieben07 126d7e3ebe Added Item#isBeaconpayment 2014-09-06 23:39:38 +02:00
Oliver Kahrmann da39ed066c Modify WavefrontObject to allow '.' in group object names
Blender names objects with .001 ir .002 when separating vertices or duplicating objects and the importer would crash on them. This fixes the regex to allow dots in the name.
2014-09-01 22:43:53 +02:00
cpw d9865fed66 MinecraftForge/FML@dc02d56195 Fix derp with ModType annotation. mods should load again now.. 2014-09-01 16:05:51 -04:00
cpw 9c27520427 Fix derp with ModType annotation. mods should load again now.. 2014-09-01 16:05:04 -04:00
cpw de521cf531 MinecraftForge/FML@4ce3e73bfe Add overloaded version of SimpleNetworkWrapper#registerMessage that takes the MessageHandler instance directly, allowing to specify the same handler for multiple messages.
MinecraftForge/FML@cbe2ccbda4 Add in ModType to the jar manifest. If it's present, and doesn't have value "FML" it will be skipped from the modloading cycle. This should let liteloader mods have a .jar extension.
MinecraftForge/FML@37cf0174fc OK, lets make that a csv list. It'll let you be liteloader and fml in one jar file!
MinecraftForge/FML@0475b15eb1 Change the mods and modListFile argument handling a bit. Other tweakers will get a chance at looking at them now - they're only removed right before launch.
MinecraftForge/FML@abeac06a2e Two new features. ModLists can have a "parent" mod list. Circularity will result in a crash, so be careful. Mods specified in a child will override ones from a parent (using the maven group:name:classifier triple to identify - ignoring the version component)
MinecraftForge/FML@7fcfedcfef Canonicalized file paths in modListFile handling with the minecraftDirectory.
MinecraftForge/FML@633fce19d4 Make Keyevent also fire for key releases
MinecraftForge/FML@57ba2339b6 Merge branch 'keyup-event' of github.com:diesieben07/FML
MinecraftForge/FML@1ff048062c Merge branch 'simple-netw-improve' of github.com:diesieben07/FML
2014-08-31 21:59:47 -04:00
cpw 1419a02d13 Merge branch 'simple-netw-improve' of github.com:diesieben07/FML 2014-08-31 21:50:25 -04:00
cpw 88a0805e93 Merge branch 'keyup-event' of github.com:diesieben07/FML 2014-08-31 21:42:10 -04:00
diesieben07 2dc1911f54 Make Keyevent also fire for key releases 2014-09-01 01:10:29 +02:00
cpw a04c3e12fe Canonicalized file paths in modListFile handling with the minecraftDirectory. 2014-08-31 14:14:15 -04:00
cpw f5cf87304b Two new features. ModLists can have a "parent" mod list. Circularity will
result in a crash, so be careful. Mods specified in a child will override
ones from a parent (using the maven group:name:classifier triple to identify -
ignoring the version component)

Finally, ModSide is now doable in MANIFEST.MF. If you have this, it can tell
a mod to only load on a client, or on a dedicated server (though I'd watch out
before using the dediserver one, you'll never load in integrated servers then).
The default value is BOTH, which means you'll load both sides, other values are
CLIENT and SERVER, obviously. Perhaps, also, CAULDRON might be possible?
2014-08-31 14:00:28 -04:00
cpw c604a5e048 Change the mods and modListFile argument handling a bit. Other tweakers will get a chance at looking
at them now - they're only removed right before launch.
2014-08-31 13:35:38 -04:00
cpw 981ffe362d OK, lets make that a csv list. It'll let you be liteloader and fml in one jar file! 2014-08-30 17:45:35 -04:00
cpw 0c50d7b92d Add in ModType to the jar manifest. If it's present, and doesn't have value "FML"
it will be skipped from the modloading cycle. This should let liteloader mods have a .jar extension.
2014-08-30 17:39:43 -04:00
cpw 24989689b3 GIANT FML UPDATE! Bump forge revision number, and fix patches for ItemStack changes. More to come on this branch I expect.
MinecraftForge/FML@7c5cf21904 Implement STDOUT/STDERR redirection.
MinecraftForge/FML@bc78e31cb7 added support for \n in tooltip strings added \n test tooltip localization fixed int/double conversion error in slider entry added test slider scenario that highlighted conversion error
MinecraftForge/FML@a2908e5c59 Clean up a bunch of compiler warnings.
MinecraftForge/FML@7f67523d87 Update realms to 1.3.2
MinecraftForge/FML@73f23c24b8 Merge branch 'std-redir' of github.com:Emberwalker/FML
MinecraftForge/FML@1c6b25df74 If an IO exception comes from the datawatcher, spew it all over the console don't discard it silently. Should stop pixelmon blaming forge for their mistakes.
MinecraftForge/FML@e77da9eb2f And fix the read side too, incase someone is trying to bitbang and failing.
MinecraftForge/FML@305d8950c9 Make LogContext optional. This can be useful for debugging mod issues, but Apache's implementation in log4j2 is responsible for a very significant % of the overall runtime. Quite frankly this is shockingly bad performance from what is supposed to be a high performance logging framework. Anyway, until we can figure out if we can fix it, we're turning it off by default.
MinecraftForge/FML@bdfca1c8ed Make more noise when people screw up mod downloading and put .jar.zip in their mod folders.
MinecraftForge/FML@2108494112 Add a custom version range factory method. Should hush skyboy's complaints. Closes #486
MinecraftForge/FML@7c1e6aaa40 Add a delegate to every item and block. this should help with renaming fun stuffs. Also, fix all the tabs from my previous commits. *sigh*
MinecraftForge/FML@61fcb4df06 Tweak Itemstack patch to always delegate to the method call. Set the field, so it's in sync.
MinecraftForge/FML@eb8c5ab146 Fix nested directory for language resources. Closes MinecraftForge#1264
MinecraftForge/FML@7c05e5f70d Default collections, so that we don't crash if useDependencyInfo is true. Closes #485
MinecraftForge/FML@9729fe2332 Kill net.minecraft.src warning. It hasn't served a purpose in a long time now. Closes #313
MinecraftForge/FML@21e875ef22 AllowPlayerLogins only after the server has completed the core init tasks. Closes #372
MinecraftForge/FML@46cfeade80 Add a constructor to CustomModLoadingDisplayException. Closes #387
MinecraftForge/FML@a6eab2683a Update README.txt
MinecraftForge/FML@f75838461c Last part is the itemstack transformer. Itemstacks should now only be loosely coupled with the items within.
MinecraftForge/FML@51f24e9e6d First draft of add alias. It is probably not properly persistent atm.
MinecraftForge/FML@2a4c642470 Finally fix stupid NPE error caused by FML trying to parse the super of Object in IDEA envs.
MinecraftForge/FML@c1b1417ee1 FML now supports passing a json formatted modlist as an argument, as well as a comma separated argument list. These facilitate modpacks mostly, by meaning you don't need to duplicate mods. The modlist is arranged in the maven style, with mods referenced maven-like.
MinecraftForge/FML@3d42cda2a2 Build.Gradle Patch
MinecraftForge/FML@20c7add845 Merge pull request #484 from bspkrs/master
MinecraftForge/FML@26ed4b992e Clear button list on FML fatal error screens. The hidden cancel button should not be there. Closes #497
MinecraftForge/FML@ebe4f5c5e2 Merge pull request #494 from AntonBoch1244/patch-1
MinecraftForge/FML@ad0da05f5c Fix the ItemStack transformer to find the method and field so it works with srg and mcp naming.
MinecraftForge/FML@65d380181a Extend timeout for client to 5 seconds. Should fix Forge #1322
MinecraftForge/FML@45486a0b6d Fix almost invisible NPE in TerminalTransformer when loading a non-existant class
MinecraftForge/FML@13da3efce0 Allow a clean way to exit the game without big ugly warnings, but with logging information available if needed. Closes #496
MinecraftForge/FML@fda305edfe Some more tidying up of the exit handling
MinecraftForge/FML@b087f60c33 More cleanup of exit handling, also add a couple more noise classes to the list of things ignored.
MinecraftForge/FML@d6358a466b Cleanup override warnings
MinecraftForge/FML@af7a58b9e5 Update to legacylauncher 1.10 and asm 5.0.3
MinecraftForge/FML@e6d00440a6 ItemStack swapping
MinecraftForge/FML@8597e45a0e Fix NPE from a boolean
MinecraftForge/FML@b9b9daa8a9 Fix ups from feedback.
MinecraftForge/FML@d89165021f Mark the promise a success in the outbound handler.
MinecraftForge/FML@2e5ccf7988 Update for launchwrapper 1.11. Fixes java 6 compatibility.
MinecraftForge/FML@641250d853 Fix java 8u20. Closes #501 and a bunch of other bugs too.
MinecraftForge/FML@292be72639 Allow client handshake to be reset by server to support BungeeCord.
MinecraftForge/FML@092873fbe5 Merge branch 'bungeecord' of github.com:bloodmc/FML
MinecraftForge/FML@134f2f8e88 Fix bug with entityspawn - if the entity doesn't extend livingbase, it fails to write a headyaw byte, and everything will be derped for that packet.
MinecraftForge/FML@4852de81e0 Wrap the server description box a little bit shorter. Stops the overlapping. Closes #489
2014-08-30 00:16:46 -04:00
cpw 0e13403457 Wrap the server description box a little bit shorter. Stops the overlapping. Closes #489 2014-08-29 21:54:20 -04:00
cpw f0d8b887b4 Fix bug with entityspawn - if the entity doesn't extend livingbase, it fails
to write a headyaw byte, and everything will be derped for that packet.

Fixes #499, but probably a bunch of others.
2014-08-29 21:43:17 -04:00
cpw 67ebda9ace Merge branch 'bungeecord' of github.com:bloodmc/FML 2014-08-29 21:37:48 -04:00
Adubbz 0d93bec5e7 Fixed biome weights not working with non multiples of 10 2014-08-30 10:35:05 +10:00
bloodshot 08ac6d548f Allow client handshake to be reset by server to support BungeeCord. 2014-08-26 20:49:20 -04:00
cpw 70c115588c Fix java 8u20. Closes #501 and a bunch of other bugs too. 2014-08-25 17:09:50 -04:00
cpw bd8bd65ca1 Update for launchwrapper 1.11. Fixes java 6 compatibility. 2014-08-20 23:02:27 -04:00
cpw c87a11e165 Mark the promise a success in the outbound handler. 2014-08-20 22:49:11 -04:00
cpw ceae256c56 Fix ups from feedback. 2014-08-20 22:46:39 -04:00
LexManos fa7ff7c6e7 Merge pull request #1300 from zlyfire/patch-1
Update README.txt
2014-08-20 13:01:53 -07:00
cpw e07bd74e34 Fix NPE from a boolean 2014-08-20 10:28:50 -04:00
cpw dddbbd3bac ItemStack swapping 2014-08-20 10:28:39 -04:00
Clashsoft 3119f700f3 Fix Stained Glass pane rendering issues 2014-08-18 20:28:15 +02:00
cpw 2ca75b3fa4 Update to legacylauncher 1.10 and asm 5.0.3 2014-08-16 13:21:07 -04:00
cpw 19b62a9fb8 Cleanup override warnings 2014-08-16 11:30:01 -04:00
cpw 13d81e05db More cleanup of exit handling, also add a couple more noise classes to the list of things ignored. 2014-08-16 10:32:22 -04:00
cpw 7c5eb19645 Some more tidying up of the exit handling 2014-08-16 10:32:00 -04:00
LexManos 1dadcb12be Merge pull request #1330 from bonii-xx/master
Write the correct default value for StringList comments in the config
2014-08-15 13:56:15 -07:00
cpw 4692e66389 Allow a clean way to exit the game without big ugly warnings, but with logging information available if needed. Closes #496 2014-08-15 16:16:07 -04:00
cpw 1d336e0aa7 Fix almost invisible NPE in TerminalTransformer when loading a non-existant class 2014-08-15 16:03:45 -04:00
Bernhard Bonigl 53294b843b Write the correct default value for StringList comments in the config 2014-08-15 15:57:44 +02:00
Lex Manos ba69a1a6fd Fix AIOOB in BiomeDictionary. Closes #1326 2014-08-14 20:33:23 -07:00
cpw c8c6190566 Extend timeout for client to 5 seconds. Should fix Forge #1322 2014-08-13 10:23:01 -04:00
cpw 6fafbf3b09 Attempt to properly resolve this daft metadata and TE nonsense. This might be mod impacting, if you maintain a reference to a TE via neighbour update calls - you
might see two TEs for a single setblock where previously you saw one. This is a phantom TE being created by badly written neighbour triggers - I'm looking at you
redstone.

Anyway, with luck, this'll close a slew of bugs across Forge, IC2, MFR, TE, RC. Yeah, fun times. Thanks to LexManos, skyboy and KingLemming for helping figure this
issue out. Quite frankly, from now on, issues with phantom TEs will be mods behaving badly. Modders will need to adapt.
2014-08-13 00:00:29 -04:00
cpw 18c71e5f2f Fix the ItemStack transformer to find the method and field so it works with srg and mcp naming. 2014-08-12 21:57:19 -04:00
LexManos 016e303379 Fix invalid math in GuiContainerCreative. 2014-08-12 17:32:53 -07:00
LexManos cb62a70d66 Merge pull request #494 from AntonBoch1244/patch-1
Build.Gradle Patch
2014-08-12 11:55:15 -07:00
LexManos 5d01fa55b1 Merge pull request #1316 from GUIpsp/master
Add ItemStack sensitive version of getItemEnchantability
2014-08-12 11:43:59 -07:00
SackCastellon 2519822b25 Add ItemStack sensitive version of getItemEnchantability 2014-08-12 16:48:01 +01:00
cpw 5527b9f01e Clear button list on FML fatal error screens. The hidden cancel button should not be
there.
Closes #497
2014-08-12 09:16:15 -04:00
Lex Manos 6f693206de Add ability for creative tabs that have search bars to customize the text box's width, and prevent the default set of enchanted books from being displayed in those tabs. Closes #1303 Closes #1301 2014-08-11 19:18:38 -07:00
LexManos 948f7145d1 Merge pull request #1187 from Abastro/skylight
Skylight Hooks for Minecraft Forge
2014-08-11 16:00:11 -07:00
Abastro f590ce8641 Skylight Hooks for Minecraft Forge
Mainly for solar/lunar eclipse.
2014-08-11 15:42:07 +09:00
LexManos 261ba628df Merge pull request #1217 from Glassmaker/patch-1
Adds getLocalizedName and getUnlocalizedName to FluidStack
2014-08-10 01:42:24 -07:00
LexManos 12d4047459 Merge pull request #484 from bspkrs/master
Added support for \n in GuiConfig tooltip strings + a slider fix
2014-08-07 14:41:51 -07:00
zlyfire ce8882e89c Update README.txt
Add in reference to running setupDecompWorkspace to get decompiled classes
2014-08-06 16:29:34 -04:00
LexManos 98285e4df6 Merge pull request #1297 from ShetiPhian/patch-1
Legacy Liquid Load Fix
2014-08-05 19:47:58 -07:00
ShetiPhian 22609b1d54 Legacy Liquid Load Fix
nbt.getString("FluidName") no longer returns null, it returns an empty string.

This patch allows legacy liquids to be resolved once again.
2014-08-05 21:08:53 -04:00
Lex Manos 5131aed7bd Fix metadata for every permutation -.- Closes #1294 2014-08-05 15:18:02 -07:00
Lex Manos d2682ab969 Fix patch screwup in Skyboy's Fishing PR -.- 2014-08-05 15:17:10 -07:00
LexManos 4600b015d9 Merge pull request #1296 from Vazkii/patch-3
Fixed items with more than 2 render passes rendering wrong in first person
2014-08-05 13:15:59 -07:00
Lizbeth Rika 63140bcf7f Fixed items with more than 2 render passes rendering weird in first person 2014-08-05 21:10:28 +01:00
AntonBoch1244 e5fe05a1cd Build.Gradle Patch
Changing assetDir to runDir and set runDir to "eclipse"
2014-08-05 22:08:58 +04:00
LexManos ec0691538f Merge pull request #1292 from DemoXinMC/master
New PlayerRepairEvent and AnvilUpdateEvent
2014-08-04 14:34:10 -07:00
DemoXin 68fd0049fb * Added AT for ContainerRepair.stackSizeToBeUsedInRepair (Now public)
* Added ability to AnvilUpdateEvent to alter stackSizeToBeUsedInRepair (vanilla behavior is now reproducable)
* Added AnvilRepairEvent, fired when the player removes an ItemStack from the output slot of ContainerRepair, and allows the chance to damage the anvil to be altered.
2014-08-04 16:54:35 -04:00
KingLemming 7cd820d855 Merge pull request #1288 from skyboy/master
Add EntityFishHook AT
2014-08-03 22:06:26 -04:00
skyboy 5f8d501ed6 Add EntityFishHook AT 2014-08-03 19:52:59 -04:00
LexManos 224987aa83 Merge pull request #1128 from skyboy/patch-fishingapi
Add API for fishing results, I'm tired of this, If shit breaks, Blame Skyboy and King_Lemming.
2014-08-03 16:28:32 -07:00
LexManos dae471e7d7 Merge pull request #1272 from rwtema/master
Fixed ItemFluidContainer always draining the maximum amount, regardless ...
2014-08-03 15:47:58 -07:00
Lex Manos cd2982f9b1 Closes #1280 2014-08-02 11:32:34 -07:00
Lex Manos 10192959f9 Fixed bug that allowed duplication of Fluids with redstone dust. Closes #1279 2014-08-01 18:37:54 -07:00
Christian 269080fee5 FML now supports passing a json formatted modlist as an argument, as well as a comma separated argument list.
These facilitate modpacks mostly, by meaning you don't need to duplicate mods. The modlist is arranged in the
maven style, with mods referenced maven-like.
2014-08-01 22:18:50 -02:30
Christian d21f8f6dbd Finally fix stupid NPE error caused by FML trying to parse the super of Object in IDEA envs. 2014-08-01 21:43:53 -02:30
Christian 07466ab036 First draft of add alias. It is probably not properly persistent atm. 2014-08-01 21:07:03 -02:30
Christian 7ee877a567 Last part is the itemstack transformer. Itemstacks should now only be loosely coupled with the items within. 2014-08-01 21:07:02 -02:30
rwtema eeb701cb16 Fixed ItemFluidContainer always draining the maximum amount, regardless of the amount remaining. 2014-07-31 20:52:52 +01:00
cpw 2c804c9b44 Update README.txt 2014-07-31 11:00:53 -02:30
Christian 8622b3fde9 Add a constructor to CustomModLoadingDisplayException. Closes #387 2014-07-31 10:46:33 -02:30
Christian 2d37b14555 AllowPlayerLogins only after the server has completed the core init tasks. Closes #372 2014-07-31 10:17:11 -02:30
Christian 0607bffb92 Kill net.minecraft.src warning. It hasn't served a purpose in a long time now. Closes #313 2014-07-31 10:02:47 -02:30
Christian f649eccc51 Default collections, so that we don't crash if useDependencyInfo is true. Closes #485 2014-07-31 09:53:27 -02:30
Christian fe29a98c62 Fix nested directory for language resources. Closes MinecraftForge#1264 2014-07-31 09:48:03 -02:30
Christian 0c088a4299 Tweak Itemstack patch to always delegate to the method call. Set the field, so it's in sync. 2014-07-31 09:47:35 -02:30
Christian f5bcb6f0ca Add a delegate to every item and block. this should help with renaming fun stuffs. Also, fix all the tabs from my previous commits. *sigh* 2014-07-30 21:18:31 -02:30
LexManos bc8374d71c Merge pull request #1263 from Zarathul/master
Added drainFluidContainer() and getContainerCapacity() helper methods to FluidContainerRegistry.
2014-07-30 13:11:58 -07:00
Christian 7ac077ed36 Add a custom version range factory method. Should hush skyboy's complaints. Closes #486 2014-07-30 16:46:16 -02:30
Christian 14f7bb44d9 Make more noise when people screw up mod downloading and put .jar.zip in their mod folders. 2014-07-30 12:38:55 -02:30
zarathul 7a1de8c13d - Added drainFluidContainer() and getContainerCapacity() helper methods. 2014-07-30 13:23:52 +02:00
Christian f8b5ae45f1 Make LogContext optional. This can be useful for debugging mod issues, but
Apache's implementation in log4j2 is responsible for a very significant % of
the overall runtime. Quite frankly this is shockingly bad performance from
what is supposed to be a high performance logging framework. Anyway, until we
can figure out if we can fix it, we're turning it off by default.
2014-07-29 21:48:14 -02:30
Christian 655d902195 And fix the read side too, incase someone is trying to bitbang and failing. 2014-07-29 21:36:44 -02:30
Christian 03174602f6 If an IO exception comes from the datawatcher, spew it all over the console
don't discard it silently. Should stop pixelmon blaming forge for their mistakes.
2014-07-29 21:33:19 -02:30
Christian 522b648185 Merge branch 'std-redir' of github.com:Emberwalker/FML 2014-07-29 14:49:42 -02:30
Christian 6819f5d45d Update realms to 1.3.2 2014-07-29 14:24:41 -02:30
Christian 0de92f4db7 Clean up a bunch of compiler warnings. 2014-07-29 14:11:41 -02:30
LexManos 7170a8c4c6 Merge pull request #1254 from Adubbz/master
Added a RenderFogEvent
2014-07-28 13:29:49 -07:00
Adubbz 2affeae979 Added an event for fog rendering 2014-07-28 17:01:38 +10:00
skyboy cc169c3ea1 Update FishingHooks 2014-07-25 06:42:17 -04:00
cpw a22bcf7e72 MinecraftForge/FML@3231db9376 Sorta revert 908491d5e7ac26becdac938f38cc90d6b9d73ce1 but merge assets into the map, rather than force overwriting. Fixes skyboy's comment. 2014-07-24 21:41:59 -04:00
cpw bbcc515063 Revert old light amortization patch. It seems to be breaking chunk sending pretty badly when more
than a couple of people are online. Tests indicate it is not useful anymore.
2014-07-24 21:40:30 -04:00
bspkrs 09d68fb7bd added support for \n in tooltip strings
added \n test tooltip localization
fixed int/double conversion error in slider entry
added test slider scenario that highlighted conversion error
2014-07-24 16:51:15 -04:00
skyboy 906dcb999d Add FishingHooks 2014-07-24 04:12:45 -04:00
cpw 5643237fb9 Sorta revert 908491d5e7ac26becdac938f38cc90d6b9d73ce1 but merge assets
into the map, rather than force overwriting. Fixes skyboy's comment.
2014-07-20 10:46:22 -04:00
Lex Manos 9febf999c0 Updated FML:
MinecraftForge/FML@53887ac59c Hacky interm solution to #1207 to buy me time to re-write FML's network protocol.
2014-07-18 12:29:03 -07:00
Lex Manos 4ba024ca2e Hacky interm solution to #475 to buy me time to re-write FML's network protocol. 2014-07-18 12:25:02 -07:00
Lex Manos c69958e34b Made skulls respect Block.isReplaceable when placing, also prevented them from deleting blocks when placed at certain angels. Closes #1233 2014-07-16 18:37:49 -07:00
Lex Manos b2dddf545b Fixed NPE that happens sometimes when exiting the game witout fully loading a world {main a dev-time thing} 2014-07-16 18:36:12 -07:00
Lex Manos 5f20829165 Updated FML:
MinecraftForge/FML@9d40b76197 Don't scan ObjectHolders if there was an error already, derpitude will ensure.
MinecraftForge/FML@76538c1781 Add a terminal transformer and tweaker.
MinecraftForge/FML@aec9228845 Add ExitVisitor to the TerminalTransformer that finds and intercepts any calls to Runtime.exit or System.exit.
MinecraftForge/FML@908491d5e7 Move LaunguageRegistry call above normal asset loading to allow resource packs to override mod's language systems.
MinecraftForge/FML@d13295e281 Fix FMLAT manifest AccessTransformers, class loader fun!
2014-07-16 16:52:18 -07:00
LexManos 20cac56bfb Merge pull request #1235 from darkhax/master
Changed exception message for duplicate enchantment ids
2014-07-16 10:10:28 -07:00
Darkhax 08826ed84b Changed exception message for duplicate enchantment ids to contain the
class path for both enchantments along with the enchantmnet id that has
been duplicated.
2014-07-16 07:08:57 -06:00
Lex Manos 4ed75fd963 Fix FMLAT manifest AccessTransformers, class loader fun! Closes #477 2014-07-16 00:24:03 -07:00
LexManos 06701348d6 Merge pull request #1232 from bspkrs/patch-3
Fixed missing assignment of constructor arg (thanks @Lunatrius)
2014-07-15 12:26:00 -07:00
bspkrs e35755c3e3 Fixed missing assignment of constructor arg (thanks @Lunatrius)
I must have edited this out when I was cleaning up my formatting commit spam.
2014-07-15 09:47:01 -04:00
LexManos e2fe13bd17 Merge pull request #1226 from williewillus/xporb
Fix experience orbs spawning at 32x coordinates clientside
2014-07-14 14:56:52 -07:00
Vincent Lee a35457ecb7 Fix comment derp (+1 squashed commits)
Squashed commits:

[52c40bc] Fix experience orbs spawning at 32x coordinates clientside

Add // FORGE comment

Add // FORGE comment to clarify the purpose of the change
2014-07-14 16:43:16 -05:00
Lex Manos 59c628f777 Move LaunguageRegistry call above normal asset loading to allow resource packs to override mod's language systems. 2014-07-14 13:53:37 -07:00
LexManos 79cda09594 Merge pull request #1225 from williewillus/master
Fix chat opacity
2014-07-14 13:11:09 -07:00
Vincent Lee 5c0217d316 Fix chat opacity
Add // FORGE comment

As per convention, add // FORGE comment to clarify the purpose of the change
2014-07-13 23:44:47 -05:00
Lex Manos b1ec7b420c Add ExitVisitor to the TerminalTransformer that finds and intercepts any calls to Runtime.exit or System.exit. 2014-07-12 17:20:01 -07:00
cpw 87dde51b8d Add a terminal transformer and tweaker. 2014-07-12 17:37:41 -04:00
cpw e8c251808b Don't scan ObjectHolders if there was an error already, derpitude will ensure. 2014-07-12 12:03:34 -04:00
Lex Manos 52ec4f7c57 Updated FML:
MinecraftForge/FML@ab52901b8b Force preferIPv4Stack to true early in the load chain to combat netty loopback issues.
MinecraftForge/FML@11893fbbb7 Add system property to skip doing world backups when game registry changes. This is SEVERLY ill-advised, if you do this DO NOT ask for any support.
MinecraftForge/FML@fdb6b34b8f Update authlib and realms to latest json data.
MinecraftForge/FML@b3a74882b4 added slider controls for numerics. default control is textbox, but slider can be used as a custom list entry class. fixed constructor javadocs in GuiConfig
MinecraftForge/FML@7c6d1f7568 Merge pull request #468 from bspkrs/master
MinecraftForge/FML@692d955c1a Update tweaker login to use authlib.
MinecraftForge/FML@c2119eb1c1 Update realms library to 1.3.1, and implement network latch when connecting to Realms. Tested and working.
2014-07-11 18:17:50 -07:00
Lex Manos e6e019896f Update realms library to 1.3.1, and implement network latch when connecting to Realms. Tested and working. 2014-07-11 17:56:07 -07:00
Lex Manos 7cd70b3f26 Update tweaker login to use authlib. 2014-07-11 17:52:43 -07:00
Glassmaker ff2696dff8 Adds getLocalizedName and getUnlocalizedName to FluidStack 2014-07-10 15:25:53 +03:00
cpw 27d5dc0a25 Add a system property for the stencil, in case config is not available.. 2014-07-09 10:59:33 -04:00
LexManos 01d0e6a481 Merge pull request #1213 from TheCountryGamer/master
RenderBlockOverlayEvent patch
2014-07-08 13:17:30 -07:00
TheCountryGamer 7adaef9aed RenderBlockOverlayEvent patch
Fixes skewed XYZ parameters
2014-07-08 15:49:32 -04:00
Lex Manos 195542c5fb Fixed Enchantment.addToBookList Closes #1160 2014-07-07 21:54:32 -07:00
Lex Manos af9229d3bc Add ability for modders to designate custom biome types. And remove note about automatically registering. Closes #1167 2014-07-07 21:29:37 -07:00
LexManos d4d562c1ca Merge pull request #468 from bspkrs/master
Added slider controls for numerics. Default control is textbox, but slider can be used as a custom list entry class.
2014-07-07 20:15:10 -07:00
bspkrs e57223a676 added slider controls for numerics. default control is textbox, but slider can be used as a custom list entry class.
fixed constructor javadocs in GuiConfig
2014-07-07 23:01:56 -04:00
LexManos ba6c2c88ed Merge pull request #1194 from diesieben07/potion-icon
Added hook for potion inventory icons
2014-07-07 19:56:52 -07:00
LexManos 7d24c2259b Merge pull request #1199 from Adubbz/master
Enhanced the Biome Dictionary
2014-07-07 19:50:56 -07:00
LexManos a6b7ba06c6 Merge pull request #1163 from TheCountryGamer/master
Added RenderBlockOverlayEvent
2014-07-07 19:50:04 -07:00
Lex Manos f6471c3c08 Added World to ChunkProviderEvent.ReplaceBiomeBlocks, and exposed metadata to End and Nether generation events. Close #1201 2014-07-07 19:47:50 -07:00
Adubbz 8d2ebdf25f Enhanced the Biome Dictionary with tags based on temperature, vegetation, moisture, trees and others 2014-07-08 12:09:44 +10:00
Lex Manos 86ccfb1d68 Made EmeraldOre respect isReplaceableOreGen. Closes #1157 2014-07-07 18:55:24 -07:00
TheCountryGamer 7e7870026e Added RenderBlockOverlayEvent.java
Adds a Forge event which controls whether an overlay is rendered.
Overlays include: First-person fire, Block (when inside a block)
	and water when a player is inside a water block.

Patched for easier manipulation of event

Fixed for Lex

To be squashed

Removed Contructor

Added block XYZ parameters

TODO, the second block overlay event’s XYZ might not be correct
2014-07-07 21:49:51 -04:00
LexManos 53ce6f69e7 Merge pull request #1200 from tterrag1098/master
Add AchievementEvent
2014-07-07 18:37:53 -07:00
Lex Manos 2d56512ab2 Update authlib and realms to latest json data. 2014-07-07 17:25:37 -07:00
Lex Manos a8aac402eb Add system property to skip doing world backups when game registry changes. This is SEVERLY ill-advised, if you do this DO NOT ask for any support. 2014-07-07 17:25:09 -07:00
Lex Manos d969137b19 Force preferIPv4Stack to true early in the load chain to combat netty loopback issues. 2014-07-07 09:29:34 -07:00
LexManos 81a791bac7 STENCIL buffer and DEPTH buffer, attempt a fix for GL errors. 2014-07-06 22:19:13 -07:00
LexManos 7c016d9ee8 Merge pull request #1210 from Ghosrec35/master
Added Javadoc comments for Forge Event documentation.
2014-07-06 17:16:46 -07:00
Lex Manos 5d82316059 MinecraftForge/FML@ac994e178a Scala people test your shit. 2014-07-06 17:14:25 -07:00
Lex Manos e7087fcc48 Scala people test your shit. 2014-07-06 17:12:58 -07:00
Lex Manos d35098ab9e Remove the BLEND enable in rendering damage bars. And exclicitly fix blend states in some GUI elements. 2014-07-06 16:25:14 -07:00
Alex c410a2d9fc Added Javadoc comments for Forge Event documentation. 2014-07-06 18:41:11 -04:00
cpw 0705670f1d MinecraftForge/FML@3ee86d0f3e updated gradle wrapper to gradle 2.0
MinecraftForge/FML@627ae73ea6 Merge pull request #464 from AbrarSyed/upgradle
MinecraftForge/FML@ee38c1b3f4 Fix unneeded cast causing crash in new Config GUI system.
MinecraftForge/FML@eb92c35a2f updated run configs for GradleStart/Server classes
MinecraftForge/FML@70dcf80410 Merge pull request #465 from AbrarSyed/upgradle
MinecraftForge/FML@0ebdbe77a2 Updated Scala to latest stable
MinecraftForge/FML@ddba18e6e3 Merge branch 'patch-1' of github.com:Soaryn/FML into scalaupdate
MinecraftForge/FML@220a37660b Update realms to 1.2.9
MinecraftForge/FML@abd7d0969b Merge branch 'scalaupdate'
2014-07-06 15:18:59 -04:00
LexManos d889765b10 Merge pull request #1159 from ganymedes01/master
Added FluidStack sensitive version for Fluid's localised name
2014-07-06 12:06:58 -07:00
cpw 920fd866b4 Merge branch 'scalaupdate' 2014-07-06 10:05:51 -04:00
cpw efdbdea99f Update realms to 1.2.9 2014-07-06 10:05:34 -04:00
cpw 2994a2c8ad Merge branch 'patch-1' of github.com:Soaryn/FML into scalaupdate 2014-07-05 16:26:48 -04:00
Soaryn 79e6167d8d Updated Scala to latest stable
Updates the -dev portion of the json files for 1.7.10 for scala 2.11.1
Updates the -rel portion of the json files for 1.7.10 for scala 2.11.1
2014-07-05 22:54:58 +03:00
LexManos 7fa5ff071d Merge pull request #465 from AbrarSyed/upgradle
fix run configs to use new GradleStart class
2014-07-05 03:14:27 -07:00
AbrarSyed 56f9373a17 updated run configs for GradleStart/Server classes 2014-07-04 22:02:29 -05:00
Lex Manos 3164dd95bf Fix unneeded cast causing crash in new Config GUI system. 2014-07-03 11:13:11 -07:00
tterrag1098 a3c268b577 Add AchievementEvent
Allows modders to react to players receiving achievements, and cancel
them.

Fix indentation

More shortening

Down to one line...

Remove newline
2014-07-02 20:18:53 -04:00
LexManos fa512ed2d7 Merge pull request #464 from AbrarSyed/upgradle
updated gradle wrapper to gradle 2.0
2014-07-02 14:54:13 -07:00
AbrarSyed fd060bcce6 updated gradle wrapper to gradle 2.0 2014-07-02 15:54:55 -05:00
LexManos a59c5fbd8c Merge pull request #1197 from MrIbby/patch-1
Add RenderItemInFrameEvent
2014-07-01 12:34:41 -07:00
Gerard Bruwn aca429f17b Add RenderItemInFrameEvent 2014-07-01 09:58:44 -07:00
Lex Manos 6db5d2ed26 Fixed issue where Fire's 'fizz' would not play for the person who extinguished the fire. 2014-06-30 11:08:18 -07:00
LexManos 7525d209b6 Merge pull request #1195 from iChun/patch-1
Fixed inverted params in FogDensity use
2014-06-29 22:47:53 -07:00
iChun 78f68847d2 Fixed inverted params in FogDensity use 2014-06-30 10:56:03 +08:00
Lex Manos 63d3fd2e84 Add config option to specify the default spawn fuzz factor for the overworld. Closes #1190 2014-06-29 18:56:22 -07:00
Lex Manos 219f5adf61 Add config option to disable attempting to creat screen with Stencil Bits. 2014-06-29 18:42:48 -07:00
diesieben07 9662b5a657 Added hook for custom PotionEffect rendering in the inventory 2014-06-30 02:06:39 +02:00
Lex Manos 086d02896f Fix creative inventory tabs not blending base don items rendered. Closes #1179 2014-06-29 16:14:57 -07:00
diesieben07 1182bc4bd6 Add overloaded version of SimpleNetworkWrapper#registerMessage that takes the MessageHandler instance directly, allowing to specify the same handler for multiple messages. 2014-06-30 00:00:06 +02:00
LexManos 8586de3222 Merge pull request #1191 from bloodmc/chunkasync
Fixed wrong method call in ChunkIOProvider.
2014-06-29 14:56:03 -07:00
bloodshot 2bfda259fa Fixed wrong method call in ChunkIOProvider.
When a chunk fails to load async, we fallback to the original sync method.
In this case, it was calling the async method twice which ended up causing
a stackoverflow.
2014-06-29 14:27:37 -04:00
cpw 5217f6f8bb MinecraftForge/FML@db219fb287 API is now able to "provide" and "own" itself. Useful for libraries without a Mod in them. To go along with this, you can now require an API, with a version, in your mod dependency string 2014-06-26 22:18:41 -04:00
cpw 71a9586fbb API is now able to "provide" and "own" itself. Useful for libraries without a Mod in them.
To go along with this, you can now require an API, with a version, in your mod dependency string
2014-06-26 22:09:50 -04:00
cpw 3b648d826f Merge pull request #1183 from bspkrs/master
fixed dupe quotes issue with category names that require quotes when save is called more than once
2014-06-26 16:34:12 -04:00
bspkrs f8be9a237c fixed compounding quotes issue with category names that require quotes when save is called more than once 2014-06-26 16:31:27 -04:00
cpw ebf0e7617a Update to MC 1.7.10, bump to 10.13.0
MinecraftForge/FML@bc420dcb0b Fix Eclipse launching attribute
MinecraftForge/FML@1e0134a1ca Merge pull request #455 from rumickon/feature
MinecraftForge/FML@1c5db211af Update for release 1.7.10
MinecraftForge/FML@79a0c5e559 Merge branch 'mc179'
2014-06-26 15:07:51 -04:00
cpw f1c7a2c134 Merge branch 'prerelease' 2014-06-26 14:57:33 -04:00
cpw be45501749 Merge branch 'mc179' 2014-06-26 14:54:41 -04:00
cpw 8afc9c465c Update for release 1.7.10 2014-06-26 14:48:46 -04:00
cpw 32e577d5bf Fix API incompatibilities. Should mean mods will work with new config changes. 2014-06-26 14:45:43 -04:00
LexManos b7b9ddc9cd Merge pull request #455 from rumickon/feature
Fix Eclipse launching attribute
2014-06-26 10:21:19 -07:00
LexManos 2d7f22ade8 Merge pull request #1180 from luacs1998/patch-2
Update mc version string
2014-06-25 18:49:10 -07:00
luacs1998 23c6d0ef55 Update mc version string
Or was I not supposed to?
2014-06-26 09:03:22 +08:00
cpw 6998e76d3f Fix API incompatibilities. Should mean mods will work with new config changes. 2014-06-25 20:47:33 -04:00
cpw af23e296f2 Fix mcp release number 2014-06-25 20:19:38 -04:00
cpw fcd13f5e71 Merge branch 'master' into prerelease 2014-06-25 20:18:42 -04:00
cpw bcda92e941 Merge branch 'bspkrsgui' 2014-06-25 20:16:20 -04:00
cpw 013c0b0feb MinecraftForge/FML@701d98eafa Added config GUI system
MinecraftForge/FML@50164db5c1 Merge branch 'master' of github.com:bspkrs/FML into bspkrsgui
MinecraftForge/FML@7eb36a1481 Merge branch 'bspkrsgui'
2014-06-25 20:15:08 -04:00
cpw 24c05a73ce Merge branch 'master' of github.com:bspkrs/MinecraftForge into bspkrsgui
Conflicts:
	src/main/resources/assets/forge/lang/en_US.lang
2014-06-25 20:13:36 -04:00
cpw ced81b5c93 Clean patch cruft. 2014-06-25 20:09:42 -04:00
cpw c7f9d5a529 Fix new method with Side.CLIENT when it shouldn't have it. Closes a bunch of reports of problems. 2014-06-25 18:59:14 -04:00
cpw cbc873bc8b MinecraftForge/FML@701d98eafa Added config GUI system
MinecraftForge/FML@50164db5c1 Merge branch 'master' of github.com:bspkrs/FML into bspkrsgui
MinecraftForge/FML@7eb36a1481 Merge branch 'bspkrsgui'
MinecraftForge/FML@96a7e14a45 Merge branch 'master' into mc179
MinecraftForge/FML@f45f18b1d7 Fix accessing guava from transformers
MinecraftForge/FML@8f7adced47 Fix library issue. mojang auth requests newer libs, so we get them at dev time. But the mojang json doesn't refer them at runtime. So there's a lib mismatch. Fortunately all are available at mojang, so we can update the json.
2014-06-25 18:31:02 -04:00
cpw 7cafaed696 Fix library issue. mojang auth requests newer libs, so we get them at dev time. But the
mojang json doesn't refer them at runtime. So there's a lib mismatch. Fortunately all are
available at mojang, so we can update the json.
2014-06-25 18:28:50 -04:00
cpw b9db002614 Fix accessing guava from transformers 2014-06-25 17:49:00 -04:00
cpw bb7aa340dc Merge branch 'master' into mc179 2014-06-25 17:03:05 -04:00
cpw 98d6d97c3e Merge branch 'bspkrsgui' 2014-06-25 17:02:40 -04:00
rumickon 0a00d40ba2 Fix Eclipse launching attribute 2014-06-25 23:49:17 +04:00
cpw 25e44a8b32 Merge branch 'master' of github.com:bspkrs/FML into bspkrsgui 2014-06-25 13:09:10 -04:00
cpw c8b3719810 MinecraftForge/FML@5d6dc5dce3 Fix up other exit points. Should stop process hangs for clean exits.
MinecraftForge/FML@8a240ec3c7 Merge branch 'master' into mc179
MinecraftForge/FML@0cd5ef6bb7 Fix NPE when no FMLAT is defined
2014-06-25 09:15:37 -04:00
cpw f5d8e85fc5 Fix NPE when no FMLAT is defined 2014-06-25 09:11:07 -04:00
cpw 380027daf0 Merge branch 'master' into mc179
Conflicts:
	src/main/java/cpw/mods/fml/relauncher/FMLSecurityManager.java
2014-06-24 22:18:03 -04:00
cpw 4c26057a4e MinecraftForge/FML@5d6dc5dce3 Fix up other exit points. Should stop process hangs for clean exits. 2014-06-24 22:16:39 -04:00
cpw 3dbe6ccded Fix up other exit points. Should stop process hangs for clean exits. 2014-06-24 22:15:11 -04:00
cpw 0bbee11b3c MinecraftForge/FML@e152984538 Add support for mod access transformers without a coremod requirement. Use the "FMLAT" manifest attribute, with a space separate list of files that live in the 'META-INF' directory. They should conform to standard AT formatting. 2014-06-24 22:05:38 -04:00
cpw 88a411550a Add support for mod access transformers without a coremod requirement.
Use the "FMLAT" manifest attribute, with a space separate list of files
that live in the 'META-INF' directory. They should conform to standard AT
formatting.
2014-06-24 21:34:07 -04:00
cpw 729d8fb721 MinecraftForge/FML@06ab104c9a Force the descriptors to the right type for the field they're referencing. Fixes the sand issue 2014-06-24 18:35:48 -04:00
cpw 237c28b6cb Force the descriptors to the right type for the field they're referencing. Fixes
the sand issue
2014-06-24 18:34:34 -04:00
Lex Manos 7ba54ffd48 Fix flower pots not droping the items that are inside them. 2014-06-23 22:06:52 -07:00
Lex Manos 256d865db6 Update to 1.7.10-pre4. 2014-06-23 21:55:16 -07:00
Christian 1275aa732e Null check the Item in the supplied stack as well as the stack itself. 2014-06-22 14:47:24 -04:00
Christian 4778c33902 And fix firing for single player loading. 2014-06-22 14:39:23 -04:00
Christian 127605ec3e Fix derpity derp. 2014-06-22 10:11:32 -04:00
Christian 6aae913919 Harden the security manager and make it less spammy. Clean up a bunch of deprecation warnings from guava. 2014-06-21 23:03:41 -04:00
Christian 94f6fffc80 remove the deprecation patches. The methods are gone now 2014-06-21 22:48:15 -04:00
Christian 06f91d8936 Merge branch 'master' into mc179 2014-06-21 22:44:38 -04:00
Christian 9b976b7afe Fix server side to write properly 2014-06-21 22:44:25 -04:00
Christian ea89e1a3f7 Pre4 update 2014-06-21 21:13:22 -04:00
Christian f7736e9a0a Fire an event when a player loads or saves from disk. Mods that want to load an additional
player related file from the players dir can now do so in that event.
2014-06-21 17:38:21 -04:00
Christian ea7c11baf4 Some patch offsets
MinecraftForge/FML@7219061b05 Also patch in warnings for Vec3Pool - similarly removed.
MinecraftForge/FML@dff2204558 FML now sets a security manager (FINALLY!). It's primary purpose at this point is to catch rogue calls to System.exit so that they can cause a proper crash report, rather than silently abandoning the game.
2014-06-21 17:34:52 -04:00
Christian c1ea6639d4 Fix up some patching bugs. Fully functional @ pre3 2014-06-21 15:55:32 -04:00
LexManos 755dd9b954 Merge pull request #1164 from lumien231/Fix-DimensionCrash
Fixes a server crash caused by a player joining that is in a non existen...
2014-06-20 17:31:45 -07:00
Lumien a21ad8fa9d Fixes a server crash caused by a player joining that is in a non existent dimension 2014-06-20 11:18:23 +02:00
LexManos 9701e944c2 Merge pull request #1162 from Thog92/1.7-biome
Add missing 1.7 biomes to BiomeDictionary
2014-06-19 11:26:38 -07:00
Thog92 a905fe578b Add missing 1.7 biomes to BiomeDictionary 2014-06-19 19:06:27 +02:00
ganymedes01 85497cbf6e Added FluidStack sensitive version for Fluid's localised name
Would be helpful for determining names for more complex FluidStacks (with tag compounds for example)
2014-06-18 15:26:14 +01:00
LexManos 5ac6f2289b Merge pull request #1155 from Zarathul/master
Added soft return for modders passing invalid negative ids to OreDictionary.getOreName. Warning: WILL Error in 1.8+
2014-06-16 19:49:13 -07:00
Zarathul e68cfa9f72 Fixed ArrayIndexOutOfBoundsException in getOreName
Added sanity check to prevent ArrayIndexOutOfBoundsException in getOreName for negative ids.
2014-06-16 23:00:40 +02:00
Christian 90ad27d985 FML now sets a security manager (FINALLY!). It's primary purpose at this point is to catch
rogue calls to System.exit so that they can cause a proper crash report, rather than
silently abandoning the game.
2014-06-15 16:37:42 -04:00
Lex Manos bb15efd037 Fixed vines generation for hanging off of trees. 2014-06-15 11:59:11 -07:00
Christian 1c78a09cfd Also patch in warnings for Vec3Pool - similarly removed. 2014-06-13 08:51:07 -04:00
LexManos 7d700c9ad2 Merge pull request #1147 from bloodmc/chunkasync
Don't call ChunkDataEvent.Load async
2014-06-12 23:10:30 -07:00
bloodshot 61a6b67d51 Don't call ChunkDataEvent.Load async
ChunkDataEvent.Load must be called after TE's are loaded since this is
what mods expect. The event is handled by ChunkIOProvider during
callStage2.
2014-06-13 00:52:13 -04:00
Christian be7cf8c01e Checking in pre3 work 2014-06-12 21:13:26 -04:00
LexManos 96286b77f9 Merge pull request #938 from bloodmc/chunkasync
Load chunks asynchronously for players.
2014-06-12 17:43:28 -07:00
LexManos 7b6b88b002 Merge pull request #1125 from alucas/addmissingjumpevent
Add missing onLivingJump calls
2014-06-12 16:20:03 -07:00
Lex Manos 1b7190c50b Pop version for new Recomended build. 2014-06-12 15:16:56 -07:00
Travis Watkins e6bbcf6a3d Load chunks asynchronously for players.
When a player triggers a chunk load via walking around or teleporting
there is no need to stop everything and get this chunk on the main thread.
The client is used to having to wait some time for this chunk and the
server doesn't immediately do anything with it except send it to the
player. At the same time chunk loading is the last major source of file IO
that still runs on the main thread.

These two facts make it possible to offload chunks loaded for this reason
to another thread. However, not all parts of chunk loading can happen off
the main thread. For this we use the new AsynchronousExecutor system to
split chunk loading in to three pieces. The first is loading data from
disk, decompressing it, and parsing it in to an NBT structure.  The second
piece is creating entities and tile entities in the chunk and adding them
to the world, this is still done on the main thread. The third piece is
informing everyone who requested a chunk load that the load is finished.
For this we register callbacks and then run them on the main thread once
the previous two stages are finished.

There are still cases where a chunk is needed immediately and these will
still trigger chunk loading entirely on the main thread. The most obvious
case is plugins using the API to request a chunk load. We also must load
the chunk immediately when something in the world tries to access it. In
these cases we ignore any possibly pending or in progress chunk loading
that is happening asynchronously as we will have the chunk loaded by the
time they are finished.

The hope is that overall this system will result in less CPU time and
pauses due to blocking file IO on the main thread thus giving more
consistent performance. Testing so far has shown that this also speeds up
chunk loading client side although some of this is likely to be because
we are sending less chunks at once for the client to process.

Thanks for ammaraskar for help with the implementation of this feature.

This commit is based off the following :

Bukkit/CraftBukkit@b8fc6ab2c1
Bukkit/CraftBukkit@85f5776df2
Bukkit/CraftBukkit@0714971ca2
Bukkit/CraftBukkit@7f49722f45
Bukkit/CraftBukkit@53ad0cf1ab
2014-06-12 16:51:17 -04:00
Arkan Emberwalker 23c6b9d245 Implement STDOUT/STDERR redirection.
These streams now redirect to log4j2, with form '[class:method:line]: Original message'.
2014-06-12 20:28:56 +01:00
Christian b12e0bff2a MinecraftForge/FML@1a99ec7db6 Deprecate getAABBPool so people can stop using it in mods. Failure to do so will result in 1.7.10 upgrade incompatibility. Use getBoundingBox instead. 2014-06-12 14:45:25 -04:00
Christian aaccbb8247 Warn when chunks are being self-recursively loaded. This can cause serious issues. Modders should watch out. 2014-06-12 14:45:25 -04:00
LexManos c45ed6f6d8 Changed dustLapis to gemLapis to make OM SHUT THE HELL UP. 2014-06-11 22:43:15 -07:00
Lex Manos dd5b51aac1 Fixed missed metadata offset, and now cache return values of getOres for speed. 2014-06-11 10:27:28 -07:00
Antoine 27d9edac67 Add missing onLivingJump calls 2014-06-11 13:37:36 +02:00
LexManos a08357a845 Merge pull request #1126 from Cojomax99/fog_customization
World fog color and density can now be controlled through an event
2014-06-11 00:57:33 -07:00
Cojomax99 9a3bc1fff5 World fog color and density can now be controlled through an event 2014-06-11 10:54:54 +03:00
LexManos 4ae1abd7d4 Merge pull request #1134 from diesieben07/ender-teleport
Fix EnderTeleportEvent for Ender Pearls.
2014-06-10 18:49:32 -07:00
Lex Manos d5a4ee2c10 Fixed inverted player parameters in PlayerEvent.Clone, Closes #1142 Closes #1140 2014-06-10 18:48:00 -07:00
Lex Manos 5849458443 Changed EntityWolf to EntityTameable in EntityLivingBase.attackEntityFrom, to allow for more custom pets. Closes #1141 2014-06-10 18:20:59 -07:00
Lex Manos 7a43d2f96a Rework OreDictionary's internals to be a bit more speedy to help combat modders using it inapropriatly. Closes #1022 Closes #1131 2014-06-10 18:05:09 -07:00
Christian fada1ad7bb Deprecate getAABBPool so people can stop using it in mods. Failure to do so will result in 1.7.10 upgrade incompatibility. Use getBoundingBox instead. 2014-06-08 21:30:47 -04:00
Christian 3084368af3 Tweak bad packet warning some. Makes it a bit more log friendly. 2014-06-08 14:35:16 -04:00
diesieben07 b0195f31e4 Fix not being able to change target & attackDamage for EnderTeleportEvent. 2014-06-07 13:45:29 +02:00
Christian 58e69af1b3 MinecraftForge/FML@e3ce211cc7 Nullcheck the dispatchers on players. Should stop some crashes when spamming connectivity.
MinecraftForge/FML@480bf2c1d0 Fix REPLY handling in SimpleNetworkWrapper. Closes  #440
2014-06-05 15:31:11 -04:00
Christian 8e64a82423 Fix REPLY handling in SimpleNetworkWrapper. Closes #440 2014-06-05 14:31:44 -04:00
Lex Manos 03ae909762 Fix inverted parameters in OreDictionary.getOreID Closes #1123
-.- Closes #1120
2014-06-04 23:09:13 -07:00
bspkrs 04c2ed554d Added support for new FML config GUI classes
refactored lots of stuff based on comments

added Configuration.load() exception handling and logging
2014-06-04 17:39:47 -04:00
bspkrs b861e95b17 Added config GUI system 2014-06-04 17:36:47 -04:00
Christian c27f4b34f8 Merge branch 'master' into mc179 2014-06-03 13:04:49 -04:00
Christian 8883803260 Nullcheck the dispatchers on players. Should stop some crashes when spamming connectivity. 2014-06-02 22:12:13 -04:00
LexManos f3cbc6c262 Merge pull request #1034 from Adubbz/master
Greatly simplified the addition of new biomes to the default world. If this breaks things blame Adubbz.
2014-06-02 17:00:47 -07:00
Lex Manos 42fc3c9516 Added Noteblock change and play events. Closes #1027 #1025 2014-06-02 16:57:04 -07:00
Lex Manos b301b1f70c Add target world to PlayerInteractEvent for potential 'cross dimension' interaction such as LittleBlocks. Closes #1071 2014-06-02 15:49:11 -07:00
Lex Manos eb1ddab278 Add a couple of localizations to Forge added strings. Closes #1068 2014-06-02 15:28:11 -07:00
LexManos 0456c4d5ae Merge pull request #1095 from rwtema/master
Fixed setBlock not using the location version of getLightOpacity()
2014-06-02 14:28:42 -07:00
Lex Manos fa3feda0d5 Filter all vanilla blocks that we missed through Forge's getDrops and BlockDrops events. As well as implemented IShearable for DoublePlants and DeadBushes. Mojang really should generic out some of this stuff instead of repeating logic all over the place! 2014-06-02 14:10:49 -07:00
Lex Manos f2a33ea9f6 Add comment to RotationHelper telling modders where to actually look, closes #1115 2014-06-02 12:20:28 -07:00
Lex Manos e7f492a15b Fixed GuiContainer calling button.mouseReleased. Closes #1116 2014-06-02 12:01:34 -07:00
Lex Manos 5fe0a0ea5a Fix patch fuzz 2014-06-02 12:01:10 -07:00
Christian 2e152c52c4 MinecraftForge/FML@585d3a91e1 If a packet is not handled by the channel, log it, and clear it. Could be spammy, but this is a serious bug and could cause a memory leak otherwise.
MinecraftForge/FML@cd715efca1 Log the queue as well
2014-05-31 09:53:36 -04:00
LexManos 7f018dad0f Merge pull request #1112 from diesieben07/entity-tracking
Add PlayerEvent.StartTracking and .StopTracking
2014-05-29 17:19:58 -07:00
diesieben07 deb5df542e Add PlayerEvent.StartTracking and .StopTracking & make trackedEntityIDs visible
& Update, as discussed on IRC (squash)
2014-05-30 01:59:05 +02:00
LexManos 4a6a49e073 Merge pull request #1109 from Open-Code-Developers/finite-patch
Make finite fluid blocks drainable
2014-05-29 15:18:34 -07:00
Lex Manos 0737601dbf Fix enum helpers for EnumRarity {moved to Commn and changed paramter} and EnumCreatureType {new parameter} and added junit test for them. Closes #1009 2014-05-28 15:28:40 -07:00
Christian 014acf6f1d Log the queue as well 2014-05-27 18:56:02 -04:00
Christian 72fbc45a19 If a packet is not handled by the channel, log it, and clear it.
Could be spammy, but this is a serious bug and could cause a memory leak
otherwise.
2014-05-27 17:59:53 -04:00
Christian 0a56e19d47 MinecraftForge/FML@1d41aa978d Fix the side for the compatibility check. Should result in green ticks finally! 2014-05-26 15:30:22 -04:00
Christian c56fc3b490 Fix the side for the compatibility check. Should result in green ticks finally! 2014-05-26 14:57:14 -04:00
Lex Manos 5f90e0788b Change IShearable JavaDoc by one line so Anti would shut up. Closes #1054 2014-05-26 11:26:53 -07:00
Christian 36ab17474b MinecraftForge/FML@4512f8e5e3 Warn when the objectholder finds nothing in the registry. Helps debug mismatched names. Also, actually make the scoping thing work with objectholder 2014-05-26 11:29:15 -04:00
Christian d932a23751 Warn when the objectholder finds nothing in the registry. Helps debug mismatched names.
Also, actually make the scoping thing work with objectholder

Also handle Blocks.air as a special case. It should never be a valid block in the block registry.

Nothing can ever replace the default block registry block. It is disabled for replacement.

Air is properly skipped
2014-05-26 11:25:25 -04:00
LexManos 96ee4caf39 Merge pull request #1089 from RainWarrior/render-events
Added world display list render events
2014-05-25 17:16:08 -07:00
RainWarrior 3980bf79da Added world display list render events 2014-05-26 04:09:21 +04:00
LexManos 5eb99791b0 Merge pull request #1103 from ganymedes01/patch-1
Fix getOreIDs not using the wildcard value correctly
2014-05-25 15:35:15 -07:00
ganymedes01 6924fef324 Fix getOreIDs not using the wildcard value correctly
You can see it's not working by requesting the ore IDs from lapis, and you'll see the name "dye" is missing (and that's the one registered using the wildcard).

Fixed it by inverting the order of the item stack parameters.
2014-05-25 19:15:26 -03:00
Lex Manos 25ef7e3469 Prevent duplciates in registered Ores in the OreDictionary and clean up some of the code, add new function to return all ores the specified ItemStack satisfies. Closes #1102 2014-05-25 14:20:02 -07:00
LexManos 507f184144 Merge pull request #1101 from Open-Code-Developers/master
Fix fluid blocks
2014-05-25 13:41:13 -07:00
Vilim bc1434ff04 Make finite fluid blocks drainable 2014-05-25 19:59:59 +02:00
Vilim bab2de72bc Fix fluid blocks
For https://github.com/BuildCraft/BuildCraft/issues/1843 .
2014-05-25 18:42:17 +02:00
Lex Manos fcc43e0aaa Updated FML:
MinecraftForge/FML@3aba56440a lastIndexOf, Note Don't code while sick.
2014-05-24 21:49:22 -07:00
Lex Manos bcec606b12 lastIndexOf, Note Don't code while sick. 2014-05-24 21:48:55 -07:00
Lex Manos fc70334343 Updated FML:
MinecraftForge/FML@3a687f48b9 -.- Save File First. My Bad.
2014-05-24 21:11:35 -07:00
Lex Manos cad049caa1 -.- Save File First. My Bad. 2014-05-24 21:11:08 -07:00
Lex Manos db52113a7e Updated FML:
MinecraftForge/FML@c828bb63c5 Make AccessTransformer change INVOKESPECIAL to INVOKEVIRTUAL when making methods visible
MinecraftForge/FML@a9aa468457 Merge pull request #431 from diesieben07/at-invokevirtual
MinecraftForge/FML@31d726abad Fix the null networkHandler in the MessageContext
MinecraftForge/FML@725d988e36 Add in the objectholder, autopopulated by FML based on simple rules. Allows for reference driven substitution of mod blocks and items based on their server running state.
MinecraftForge/FML@f07bf5cb30 Fixed deobfusication of nested inner classes. And removed legacy ModLoader remaps.
2014-05-24 20:46:04 -07:00
Lex Manos e69fd72d42 Fixed deobfusication of nested inner classes. And removed legacy ModLoader remaps. 2014-05-24 20:44:25 -07:00
Christian 05cde0c92f Add in the objectholder, autopopulated by FML based on simple rules. Allows
for reference driven substitution of mod blocks and items based on their
server running state.
2014-05-24 22:32:24 -04:00
Christian 2c5fcc6129 Fix the null networkHandler in the MessageContext 2014-05-24 16:54:48 -04:00
Lex Manos 243aa60bf9 Add Glass, Colored glass, ore storage blocks, alines, and a few others to ore dicitonary. Closes #1011 2014-05-24 13:01:35 -07:00
Lex Manos acf8e468f3 Made WorldGenShrub respect Block.canSustainPlant, Closes #1096 2014-05-24 10:55:57 -07:00
Lex Manos dc10db1d90 Add new PlayerEvent.Clone called when an EntityPlayer is cloned via dimension travil or respawn. 2014-05-24 10:50:52 -07:00
rwtema 576a1294da Fixed setBlock not using the location-specific version of getLightOpacity() 2014-05-23 22:37:41 +01:00
LexManos c3cf12f3b2 Merge pull request #431 from diesieben07/at-invokevirtual
Make ATs replace INVOKESPECIAL when needed
2014-05-22 10:13:09 -07:00
LexManos 8145de123e Merge pull request #1091 from Clashsoft/master
Don't render ItemStack tooltip twice
2014-05-22 09:57:36 -07:00
Clashsoft e530089639 Update GuiScreen.java.patch 2014-05-22 16:12:52 +02:00
diesieben07 7ede64fbf2 Make AccessTransformer change INVOKESPECIAL to INVOKEVIRTUAL when making methods visible 2014-05-22 14:25:23 +02:00
LexManos d63a9b1b10 Merge pull request #1086 from WaDelma/master
Added amount that is being filled/drained to the FluidEvent
2014-05-21 18:44:38 -07:00
WaDelma a3e8f0cbe4 Fluid events now know how much fluid is moved
Added amount that is being filled/drained to the FluidEvent

Added constructors without amount to ensure backwards compability

Added deprecation to amountless constructors
2014-05-20 01:39:51 +03:00
Lex Manos 7b062dd390 Fixed Stems not droping a random number of seeds based on metadata, Closes #1087 2014-05-19 11:11:04 -07:00
LexManos 83e7130216 Merge pull request #1081 from XCompWiz/master
Bug Fixes to Biome Decoration and Chunk
2014-05-18 15:48:10 -07:00
XCompWiz cdad2dc55a Bug Fixes to Biome Decoration and Chunk
Fixes issue with biome decoration crashing on worlds with exposed void
Fixes same issue in JungleBiome decoration
Fixes forge bug in getting lighting from a block in chunk
2014-05-19 01:37:59 +03:00
Christian 3885f9bf84 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
Lex Manos 9d66c91c86 Added accessible instance to RenderBlocks and RenderItem for modders to use who don't wish to create there own instance. Warning: Other modders may influance the transient state of the instance, BE WEARY MODDERS. 2014-05-14 12:23:22 -07:00
Lex Manos 1c7341b982 Added Farmland to PLAINS type plants as that has changed in 1.7. Also made BlockTallGrass call it's super.canBlockStay to better support custom soils. Closes #1077 2014-05-14 12:21:24 -07:00
Lex Manos 5e6c346c7c In Flower Forest biome a Poppy should spawn instead of Blue Orchid Closes #1078 2014-05-14 12:20:04 -07:00
Christian 3d9b5b1472 MinecraftForge/FML@43e3ee1af1 Swap Listenerlist constructor around. Should fix parent resizing issue? 2014-05-14 14:24:16 -04:00
Christian ca674c2ae5 Swap Listenerlist constructor around. Should fix parent resizing issue? 2014-05-14 14:22:51 -04:00
Christian 7578f0813b MinecraftForge/FML@70570a863f Fix up possible CME 2014-05-14 10:13:00 -04:00
Christian e05d6340d7 Fix up possible CME 2014-05-13 15:11:50 -04:00
Christian 71b3ba2041 MinecraftForge/FML@503da3a257 Don't consider null NetworkDispatchers. This should fix a bunch of fakeplayer issues. 2014-05-13 08:16:22 -04:00
Christian 8a69b17bd6 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
Lex Manos f95ca18707 Fixed No Blue Orchids spawn in swamp when using bone meal Closes #1072 2014-05-12 12:36:36 -07:00
Lex Manos 711e92a59f Fully clear DimensionManager's DimensionID bitset when world is loaded. Closes #1074 2014-05-12 11:46:03 -07:00
Christian 26c55d89ef Fix forge validating strict versions on remote connections. 2014-05-12 13:49:46 -04:00
Christian 51b55eaf25 MinecraftForge/FML@a8cbef2321 Finally hopefully fully kills the race condition causing a classcast on slow machines.
MinecraftForge/FML@8dbd1ae0a1 Fix ObjectIntIdentityMap sporadically matching non-identical objects.
MinecraftForge/FML@42713c66e5 Merge pull request #426 from sfPlayer1/master
2014-05-12 10:51:00 -04:00
cpw 3f86cd32a7 Merge pull request #426 from sfPlayer1/master
Fix ObjectIntIdentityMap sporadically matching non-identical objects.
2014-05-12 10:50:20 -04:00
Player ee671c3eab Fix ObjectIntIdentityMap sporadically matching non-identical objects. 2014-05-12 16:29:37 +02:00
Christian 39340e46aa 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
Adubbz 4454d3f341 Greatly simplified the addition of new biomes to the default world 2014-05-11 15:06:14 +10:00
Christian bb52a6b062 MinecraftForge/FML@d8b6adb259 Add a helper for casting some common collection types into generic form
MinecraftForge/FML@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:54:23 -04:00
Christian a66e8462d8 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 0a9099c8dd Add a helper for casting some common collection types into generic form 2014-05-10 13:36:24 -04:00
Lex Manos 80511409ff Updated FML:
MinecraftForge/FML@a70308ef41 Update mcmod.info
MinecraftForge/FML@8555344eb3 updated wrapper to gradle 1.12
MinecraftForge/FML@1d5fc60f82 Merge pull request #411 from matthewprenger/master
MinecraftForge/FML@3612ad0c25 Attempt to fix another race condition related to reading NetClientHandler.
MinecraftForge/FML@c73a2076e3 Fix potential rance condition in connecting to vanilla servers as well. And move latch into client side only.
MinecraftForge/FML@1436ac2f14 Fine use FMLCommonHandler.
MinecraftForge/FML@542e9acec1 documented dependencies
MinecraftForge/FML@ddc2cfbe86 Merge pull request #402 from AbrarSyed/patch-1
MinecraftForge/FML@362ec8dee7 Merge pull request #419 from Thog92/master
MinecraftForge/FML@b9de9ebc96 Revert "Fix refreshResources not happening if an error occurs."
MinecraftForge/FML@738ce1d7cd Re-add removed genericiterable to clean a warning
MinecraftForge/FML@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.
MinecraftForge/FML@de546bdf6c Clean up some missing generic info
MinecraftForge/FML@cd43eacbb2 Ensure that the loadcontroller is ready to preinit.
MinecraftForge/FML@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
MinecraftForge/FML@0c36868f92 Fix network disconnect with message on the client side in NetworkDispatcher.
2014-05-09 13:34:08 -07:00
Lex Manos 123f5919ba Fix network disconnect with message on the client side in NetworkDispatcher. 2014-05-09 13:23:24 -07:00
Lex Manos 6b82a4fed8 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
LexManos 51628825e5 Merge pull request #1064 from bspkrs/patch-2
Fixed unforeseen NPE
2014-05-08 08:40:25 -07:00
Christian 3a77c79f8a Ensure that the loadcontroller is ready to preinit. 2014-05-08 10:40:52 -04:00
Christian f866aeaacb Clean up some missing generic info
PS: NOPE: still not modding.
2014-05-08 10:36:01 -04:00
Christian b286cb6a57 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
bspkrs e625622b6e Fixed unforeseen NPE 2014-05-08 10:22:48 -04:00
Christian 0b795b8bab Re-add removed genericiterable to clean a warning 2014-05-08 09:58:03 -04:00
Christian f628bde87b Revert "Fix refreshResources not happening if an error occurs."
This reverts commit fff86ee9d3.
2014-05-08 09:56:43 -04:00
Lex Manos 9e1f038c16 Revert "Implemented hashCode and equals in ItemStack, Closes #986"
This reverts commit 0b01545a03.
2014-05-07 22:08:06 -07:00
LexManos 7229ba5c83 Merge pull request #419 from Thog92/master
updated wrapper to gradle 1.12
2014-05-07 15:41:05 -07:00
LexManos 51fc256111 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 437e479446 documented dependencies 2014-05-07 17:34:44 -05:00
Lex Manos 0b01545a03 Implemented hashCode and equals in ItemStack, Closes #986 2014-05-07 15:28:03 -07:00
Lex Manos c8abc41aa0 Fix extended entity properties being lost when leaving the end, This introduces the concept of calling IExtendedEntityProperties.init when entites/worlds change. Lets see if mods explode. 2014-05-07 14:52:18 -07:00
Lex Manos e33224054b Fine use FMLCommonHandler. 2014-05-07 14:36:00 -07:00
LexManos 3b79370be1 Merge pull request #1062 from bspkrs/master
New GuiScreen events and a new ElementType DEBUG for RenderGameOverlayEvent
2014-05-07 13:58:18 -07:00
Lex Manos 3cb3988491 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
bspkrs eb2549c773 New GuiScreen events and a new ElementType DEBUG for RenderGameOverlayEvent 2014-05-07 16:52:10 -04:00
Lex Manos 18aed8bf1b Attempt to fix another race condition related to reading NetClientHandler. 2014-05-07 13:31:16 -07:00
Lex Manos d881baa581 Added new hook to WeightedRandom.getItem that allows for use of custom rnadom generators, prevents redundant code in mods. 2014-05-07 13:27:05 -07:00
LexManos e69004b50e Merge pull request #411 from matthewprenger/master
Update ExampleMod mcmod.info
2014-05-07 12:39:12 -07:00
Lex Manos f81c0cb58f Fixed hard references in WorldGenBigTree and ForgeCommand that caused worlds to leak in the client. 2014-05-07 12:18:56 -07:00
Lex Manos 0fe2584b77 Updated FML:
MinecraftForge/FML@2c56c32c5a Fix saving backups with the raw name. Fix air block not being assigned as the default.
MinecraftForge/FML@d0f8073fa5 Merge pull request #413 from sfPlayer1/master
MinecraftForge/FML@810b1f3075 Clean some generic warnings up. Make a generic list handler. Helpful for others I think too.
MinecraftForge/FML@fff86ee9d3 Fix refreshResources not happening if an error occurs.
MinecraftForge/FML@76d8d0e870 Fix mod version checking
MinecraftForge/FML@b84d0760ae Fix display of mod status at the server
MinecraftForge/FML@251af1d09d Fixed memory leak on the client caused by Netty holding references to the World.
2014-05-07 12:17:52 -07:00
LexManos 5fc3e7e913 Merge pull request #1060 from Azanor/master
Fix for Block.getExplosionResistance getting passed the wrong parameters
2014-05-07 09:41:43 -07:00
Azanor 2e1033b045 Fix for Block.getExplosionResistance getting passed the wrong parameters
It is being sent the x, x, y coordinates instead of x, y, z
2014-05-07 17:21:58 +02:00
Thog92 366fc5c76c updated wrapper to gradle 1.12 2014-05-06 22:03:44 +02:00
Lex Manos 5a2b6a604b 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 ad3b232604 Fix display of mod status at the server 2014-04-30 22:47:10 -04:00
Christian af73743eb7 Fix mod version checking 2014-04-30 22:26:16 -04:00
Christian 0be4719fd5 Fix refreshResources not happening if an error occurs. 2014-04-30 21:55:55 -04:00
Christian 66ad8ea41a 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 ff5eb87e27 Merge pull request #413 from sfPlayer1/master
backup+default block use fix
2014-04-30 10:12:21 -07:00
Player 74c89da967 Fix saving backups with the raw name.
Fix air block not being assigned as the default.
2014-04-30 09:44:09 +02:00
LexManos 80fd60eaff Merge pull request #1051 from Deadrik/ChunkProviderFixes
ReplaceBiomeBlocks Event changes
2014-04-29 17:38:37 -07:00
Bioxx f848955263 Adds a new ReplaceBiomeBlocks Event constructor that supplies the metadata array if applicable and updates the ChunkProviderGenerate class to pass in the metadata array. 2014-04-29 19:40:32 -04:00
LexManos d01758e90d Merge pull request #1050 from CovertJaguar/master
Flexible Rail return value was inverted between 1.6 and 1.7
2014-04-29 14:12:33 -07:00
CovertJaguar 5f6e1167f4 Fix issue with flexible rail return value
Between 1.6 and 1.7 the return value to BlockRailBase.isFlexibleRail()
was inverted. While this is not a huge deal and could be worked around
by simply inverting your return value, it does mean its no longer
consistent with the function name and javadocs.
2014-04-29 14:07:59 -07:00
Matthew Prenger e8b3603ee8 Update mcmod.info 2014-04-28 22:27:52 -05:00
Christian 63a205c043 No, this is not me modding either. I'm doing this as a favour for Lex, who's a bit computerless at the minute.
MinecraftForge/FML@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..
MinecraftForge/FML@7f01cf549b I'm still not modding. Player has contributed greatly to the 1.7 release of FML. He needs authorship credit.
MinecraftForge/FML@2b8d0f6680 Fix SimpleNetworkWrapper - this is not me modding, I didn't realize it was broken until Pahimar told me.
MinecraftForge/FML@ddee7eb117 Fix vanilla bug causing integrated server saving from 2 threads concurrently after a crash
MinecraftForge/FML@59a5adfdb3 Registry: Fix Block-before-ItemBlock allocation when loading 1.6 world saves, more validation
MinecraftForge/FML@d88b2aa0c5 prevent the world from getting saved twice at shutdown
MinecraftForge/FML@9b1cbab03b Registry: Crash earlier with conflicting name/object registrations.
MinecraftForge/FML@7ba167c500 Registry: Misc tweaks
MinecraftForge/FML@78248da399 Registry: Treat all 1.6 entries as items.
2014-04-28 15:59:30 -04:00
Player 2d3cd66680 Registry: Treat all 1.6 entries as items. 2014-04-26 21:56:25 +02:00
Player dfa9f2d1a2 Registry: Misc tweaks 2014-04-26 21:56:25 +02:00
Player 7175165d15 Registry: Crash earlier with conflicting name/object registrations. 2014-04-26 21:56:25 +02:00
Player 9d00580d7e prevent the world from getting saved twice at shutdown 2014-04-26 21:56:25 +02:00
Player 624e68e18e Registry: Fix Block-before-ItemBlock allocation when loading 1.6 world saves, more validation 2014-04-26 21:56:25 +02:00
Player 09ff49fe58 Fix vanilla bug causing integrated server saving from 2 threads concurrently after a crash 2014-04-26 21:56:25 +02:00
Christian c7d887f078 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
LexManos 022cefc72a Merge pull request #1044 from bspkrs/patch-1
Fixed typo in update checker
2014-04-20 03:52:55 -07:00
Christian 840c96a212 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 a7c15e30aa 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
bspkrs 3fa0c70f2b get a spelling checker :P 2014-04-18 11:21:40 -04:00
Lex Manos a008339c6e Bump Forge version in prep for release. 2014-04-16 17:30:50 -07:00
Lex Manos 172ea90c59 Try and fix invalid framebuffer depth/stencil setup, Thanks Ivoforce. Closes #1032 2014-04-15 12:03:31 -07:00
LexManos cc08cb46c8 Merge pull request #1038 from planetguy32/master
Fix infinite loop in RecipeSorter
2014-04-15 14:47:36 -04:00
planetguy32 fd59ab261f Fix infinite loop in RecipeSorter
If recipe is multiple levels of inheritance from Object and not categorized, cls=cls.getSuperclass(); needs to be repeated more than once. It must therefore be moved to inside the while loop.
2014-04-12 20:04:02 -07:00
LexManos 2cef9c5cb2 Merge pull request #1029 from iChun/patch-1
Fixes stencil buffers on platforms not supporting OpenGL 3.0 or higher.
2014-04-07 10:43:02 -07:00
iChun cc54645bf3 Fixes stencil buffers on platforms not supporting OpenGL 3.0 or higher. 2014-04-08 01:09:17 +08:00
Lex Manos 2b40a5e3ce Small wording change in license to allow for specifc differnet licnense contributions.
Updated FML:
MinecraftForge/FML@e58562d3ed Fix remaining issue with autoassigned Block and Item IDs overlapping.
MinecraftForge/FML@a82195772e Registry: Block IDs after failing to find a mapping for them
MinecraftForge/FML@fd9389015f Fix FMLMissingMappingsEvent.get
MinecraftForge/FML@5eebd4df71 Registry: Implement support for remapping blocks/items to a new name.
MinecraftForge/FML@7325aa5033 Registry: cleanup, fix missing id error GUI formatting
MinecraftForge/FML@eb29d651eb Fix old 1.7 worlds with broken ID mappings
MinecraftForge/FML@6fd3c12a4a Registry: allow handling missing blocks/items regardless of the mod id
MinecraftForge/FML@038fa17ad3 Merge branch 'master' of https://github.com/MinecraftForge/FML
MinecraftForge/FML@49c623f59c initial attempt at a better way to ask the user in case of startup issues
MinecraftForge/FML@9be92dcfcb Registry: Complain about bogus registrations
MinecraftForge/FML@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
MinecraftForge/FML@c47fc3b382 Enable custom gui rendering only as required
MinecraftForge/FML@f77632df35 Remove unneeded entity spawn debug logging.
MinecraftForge/FML@c7adb42199 Registry: Repair mismatched ItemBlocks as well Fix a few misc issues
MinecraftForge/FML@c8a245a985 Registry: Fix debug info
MinecraftForge/FML@c8a0b72eba Registry: Complain about missing mods when repairing broken worlds Registry: Reduce console spam
MinecraftForge/FML@8e44006f43 Registry: Protect against putObject misuse, handle duplicate registrations better
MinecraftForge/FML@294c93212c Registry: Add support for registering ItemBlocks before their Blocks
MinecraftForge/FML@3b42b33b6e Merge pull request #400 from sfPlayer1/master
2014-04-07 10:01:56 -07:00
LexManos ede8bb6e61 Merge pull request #400 from sfPlayer1/master
Fix various registry issues
2014-04-07 09:57:13 -07:00
Player ea2972725a Registry: Add support for registering ItemBlocks before their Blocks 2014-04-07 17:30:38 +02:00
LexManos ae81ad58ea Merge pull request #1028 from alexbegt/patch-1
Small Fix: Held Items & Multiple Render Passes
2014-04-06 16:34:58 -07:00
Alexander Behrhof 36298e2bfe Small Fix: Held Items & Multiple Render Passes
Passes beyond 1 now have the correct icon.
2014-04-06 17:29:23 -04:00
Player 07d5d5c7af Registry: Protect against putObject misuse, handle duplicate registrations better 2014-04-06 17:11:23 +02:00
Player 6ffbcc5903 Registry: Complain about missing mods when repairing broken worlds
Registry: Reduce console spam
2014-04-06 14:49:59 +02:00
Player b5cc021754 Registry: Fix debug info 2014-04-05 01:54:07 +02:00
Player 7284104472 Registry: Repair mismatched ItemBlocks as well
Fix a few misc issues
2014-04-05 01:47:19 +02:00
Lex Manos 7b19768c4c Fix line offset in Minecraft patch, and mix RenderPlayer looping once to many on multi-pass items. 2014-04-04 14:20:56 -07:00
LexManos 094d80fe66 Merge pull request #1024 from ShetiPhian/patch-1
Add a variable for SoundCategory in PlaySoundEvent17
2014-04-03 19:59:56 -07:00
ShetiPhian bba42d4230 Update PlaySoundEvent17.java 2014-04-03 22:25:49 -04:00
Player 2e6b7e2eb5 Remove unneeded entity spawn debug logging. 2014-04-03 21:00:42 +02:00
Player 37a81d04d9 Enable custom gui rendering only as required 2014-04-03 17:58:53 +02:00
Lex Manos 621fb050ce Finally do SoundSystem workup for 1.7, Closes #982 2014-04-03 03:12:22 -07:00
Lex Manos 5fbc70173c Add NPE protection to GuiingameMenu.actionPerformed, Closes #961 2014-04-03 02:11:17 -07:00
Lex Manos 72d22c5827 Update access transformer, Closes #951 and #1021 2014-04-03 02:10:43 -07:00
Lex Manos 12e8d95e9f Fix potential threading issue if FluidRegistry.loopupFluidForBlock is called from two threads at the same time before being setup. Closes #936 2014-04-02 23:53:05 -07:00
Lex Manos 14b9d639a2 Use BiomeGenBase's array size instead of hardcoding it in BiomeDictionary. Closes #871 2014-04-02 23:46:52 -07:00
Lex Manos 5f62afb5f2 Add AnvilUpdateEvent which is fired when a user places a item in both input slots of a Anvil and allows modders to control the output. Closes #838 2014-04-02 18:33:13 -07:00
Lex Manos 33bf2c8a69 Add ANIMALS tpe to PopulateChunkEvent.Populate Custom providers should call this function if they spawn animals curing population. Closes #790 2014-04-02 17:40:03 -07:00
Lex Manos 56084b584d ItemStack sensitive version of Item.getAttributeModifiers, Closes #816 2014-04-02 17:24:25 -07:00
Lex Manos b0bfea4e03 New hook to truely seperate the display of the 'durability' bar from the current / max durability. Allowing modders to control that display easier. 2014-04-02 17:08:22 -07:00
Lex Manos aa0c902d22 Advanced Model Loader available server-side for data driven models. To be cleanuped and re-evaluated in 1.8. Closes #773 2014-04-01 15:02:06 -07:00
Lex Manos d9a1c718bf Add position to BreakSpeed event. Closes #621 2014-04-01 15:00:25 -07:00
Player 407f6f79af 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 3eaa002091 Registry: Complain about bogus registrations 2014-04-01 14:40:24 +02:00
Player 11ab034638 initial attempt at a better way to ask the user in case of startup issues 2014-04-01 14:30:47 +02:00
Player e013f1514d 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 f436b3e62d Update patches for new Fixed FernFlower used in FG 1.2. 2014-03-31 16:48:21 -07:00
LexManos 8576fe6dbe Merge pull request #1012 from AbrarSyed/master
Updated for ForgeGradle 1.2
2014-03-31 16:05:09 -07:00
Lex Manos 0586c2b1aa Update patches for Fixed FF in FG 1.2. 2014-03-31 16:02:54 -07:00
Player 56f31def7b Registry: allow handling missing blocks/items regardless of the mod id 2014-03-31 04:09:59 +02:00
Player d392ddf3be Fix old 1.7 worlds with broken ID mappings 2014-03-30 17:17:54 +02:00
AbrarSyed 1d2d0ea5cd fixed remaining noop patches and exc derp 2014-03-29 01:52:11 -05:00
AbrarSyed 5d43695710 updated FML to latest master 2014-03-29 01:14:24 -05:00
AbrarSyed 0e1a1202d8 added .exe file.. fixed a bunch of patches 2014-03-29 01:12:45 -05:00
Player 939a095896 Registry: cleanup, fix missing id error GUI formatting 2014-03-27 08:30:55 +01:00
LexManos e35a3538a6 Merge pull request #392 from AbrarSyed/master
Updated to ForgeGradle 1.2
2014-03-26 16:04:30 -07:00
AbrarSyed ed79732705 updated wrapper to gradle 1.11 2014-03-26 13:34:25 -05:00
AbrarSyed 4db8573645 updated example a little 2014-03-26 13:34:01 -05:00
AbrarSyed 9d3a274cb6 updated for ForgeGradle 1.2 2014-03-25 10:15:42 -05:00
AbrarSyed 2a2e201f4a COnverted patches to SRG names 2014-03-25 10:13:57 -05:00
Player ac44af863b Registry: Implement support for remapping blocks/items to a new name. 2014-03-25 00:36:37 +01:00
Player 180c605570 Fix FMLMissingMappingsEvent.get 2014-03-24 21:47:25 +01:00
Player e9ca678ab3 Registry: Block IDs after failing to find a mapping for them 2014-03-24 21:16:36 +01:00
Player ff6083e77b Fix remaining issue with autoassigned Block and Item IDs overlapping. 2014-03-20 23:41:01 +01:00
luacs1998 7f1b938cae Update CONTRIBUTING.md
Add link to wiki page on contributing
2014-03-19 23:33:36 +08:00
luacs1998 132d53583d Create CONTRIBUTING.md
Simple file (which github will show for those making PRs) containing guidelines for making PRs.
Feel free to comment if you want/need anything added. I can pull the same thing to FML too if you'd like, Lex.
2014-03-19 23:26:02 +08:00
AbrarSyed ff6143dc85 updated for ForgeGradle 1.2 2014-03-19 02:15:53 -05:00
LexManos 0cd40e70b6 Update README.txt 2014-03-18 01:54:32 -05:00
Lex Manos f632ea0c36 Fix network close events never getting called. Closes #381 #382 2014-03-15 18:16:27 -07:00
LexManos 0620a64813 Merge pull request #998 from Eurymachus/master
This correctly uses the world height less one block for placement of a door
2014-03-15 16:31:57 -05:00
Eurymachus 05afb0c347 This correctly uses the world height less one block for placement of a
Door.

Required for placing doors inside a littleblocks area.
2014-03-12 13:26:48 +00:00
Lex Manos 244e39df0c 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 185b9f8368 MinecraftForge/FML@ef07de4f65 Fix hard link to DedicatedSerever when opening a LAN connection causing stalls on connecting. 2014-03-11 00:55:57 -07:00
Lex Manos 9b615893d9 Fix hard link to DedicatedSerever when opening a LAN connection causing stalls on connecting. 2014-03-11 00:50:55 -07:00
Lex Manos ea2c07c727 -.- Both null combinations. 2014-03-10 23:41:37 -07:00
Lex Manos 1a9e13f880 properly implement equals, sod off Player. 2014-03-10 23:27:30 -07:00
Lex Manos d97ec2763c Implement simple hash based equals in Fluid ContainerKey. 2014-03-10 22:51:31 -07:00
Lex Manos 534b241e9f Make StructureVillagePieces.Village public. 2014-03-10 22:12:46 -07:00
LexManos 0513182e3c Merge pull request #995 from iChun/master
Fixes stencil bits not existing in Minecraft's framebuffer causing stencil test to not work.
2014-03-10 17:42:55 -05:00
iChun 741a90c6bd Fixes stencil bits not existing in Minecraft's framebuffer causing stencil test to not work. 2014-03-11 06:40:37 +08:00
Lex Manos 68eb0d15dc Updated FML:
MinecraftForge/FML@e8b60441cc Reload game settings after mod loading is finished to capture mod keybindings. Closes #378
MinecraftForge/FML@399770e572 Kill the modEventTypes list, register anything that extends FMLEvent, Fixes MissingMappingEvent handler, and any futureevents added.
MinecraftForge/FML@b7ad532ab5 Re-enable post initalize texture pack reloading to allow Icons to be registerd through any init phase.
2014-03-09 13:44:36 -07:00
Lex Manos d3d244f4a2 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
LexManos 8660d0471f Merge pull request #983 from DemoXinMC/master
Added Ore Dictionary entries and recipe replacements for Diamond, Emerald, Crops, Redstone, and Glowstone
2014-03-01 12:06:08 -08:00
LexManos 0a6dc66749 Merge pull request #984 from ShetiPhian/item-renderer-fix
Small Fix: Held Items & Multiple Render Passes
2014-02-28 05:03:41 -08:00
DemoXin 488eb30272 * Fixed Items.glowstone to Items.glowstone_dust 2014-02-28 02:54:50 -05:00
Timothy Tomkins d2d2032f93 Small Fix: Held Items & Multiple Render Passes
Passes beyond 1 now have the correct icon.
2014-02-27 23:57:44 -05:00
DemoXin 58fde290f8 * Added Ore Dictionary entries and recipe replacements for Diamond, Emerald, Crops, Redstone, and Glowstone 2014-02-27 22:48:33 -05:00
Lex Manos 55199c25d8 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 246152d3c4 Fixed hashcode in FluidContainerRegistry, still needs a redesign. Closes #967 2014-02-23 16:56:29 -08:00
Lex Manos e7e85ad07b Reload game settings after mod loading is finished to capture mod keybindings. Closes #378 2014-02-22 20:59:25 -08:00
LexManos ee7aa93416 Merge pull request #978 from iChun/master
Add cancelable RenderHandEvent.
2014-02-21 10:28:37 -08:00
iChun bad0639e90 Add cancelable RenderHandEvent. 2014-02-22 01:13:40 +08:00
Lex Manos 6f49bba302 Fix a typo in our tile entity fix causing it to be ineffective. 2014-02-20 12:04:27 -08:00
Lex Manos b01d87f0c6 Fix items with color rendering incorrectly. 2014-02-19 12:34:21 -08:00
Christian 08a636c34f Update Forge for patch changes
MinecraftForge/FML@064b66af3d Prevent players from logging in until server has finished starting.
MinecraftForge/FML@2aa73afa15 Fix ExampleMod.java for build #1024+
MinecraftForge/FML@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.
MinecraftForge/FML@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".
MinecraftForge/FML@fa5f4c8842 Some argumentation
MinecraftForge/FML@45409bfa0c Prevent player dat files getting reset during disconnects.
MinecraftForge/FML@33100d6bab Merge pull request #371 from bl4ckscor3/patch-1
MinecraftForge/FML@572d32358a Merge pull request #373 from bloodmc/master
MinecraftForge/FML@d0dd05a15c FML expands S3F to support payloads up to 2 megs in size. Should be transparent
2014-02-18 21:03:44 -05:00
Christian 322e691d04 FML expands S3F to support payloads up to 2 megs in size. Should be transparent 2014-02-16 18:30:27 -05:00
cpw 9910256063 Merge pull request #373 from bloodmc/master
Prevent player data getting reset during disconnects.
2014-02-14 10:57:50 -07:00
cpw bd8ffc99d4 Merge pull request #371 from bl4ckscor3/patch-1
Fix ExampleMod.java for build #1024+
2014-02-14 10:57:32 -07:00
bloodshot f1db5dd5af 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
Lex Manos 3322996885 Fixeed a missed -1 in SpawnerAnimals patch. Thanks Blood. 2014-02-12 23:06:11 -08:00
Lex Manos b43d63a7ad Cull FakePlayers when worlds are unloaded. 2014-02-11 18:25:33 -08:00
Lex Manos c8e0b4a193 Use correct tag types when reading Forced Chunk data. Fixes ticket loading. Closes #964 2014-02-10 16:16:03 -08:00
Lex Manos c4972b7658 Fixed FluidContainerRegisry.contansFluid closes #845 2014-02-10 15:29:36 -08:00
Christian 2bf052ad91 Some argumentation 2014-02-08 22:41:02 -05:00
Christian 64aa12b7e6 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 2d1f9f2811 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 a5fb93271c Fix ExampleMod.java for build #1024+ 2014-02-08 12:34:01 +01:00
Lex Manos 8462f3b17c Fix AIOOB error with Endermen and blocks >256. Also better support for ID remapping. More to come later. 2014-02-07 19:15:05 -08:00
Dan Roque 982f5c7e1b 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 1e2c63f486 Add the beginnings of a Constants class, to document/clean some of the magic numbers that are in the MC code base. 2014-02-05 01:14:57 -08:00
Lex Manos e68577ffd3 Updated FML:
MinecraftForge/FML@03fb1879d7 Fix obf error when right clicking a Empty Map.
MinecraftForge/FML@6bb9b8b953 Clean up FMLEventChannel. Closes #367.
MinecraftForge/FML@b7b3450dcd Update MCP mapping snapshot to latest crowdsourced names.
MinecraftForge/FML@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-05 01:14:24 -08:00
Lex Manos dbf2c416c7 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 284c1eb06b Update MCP mapping snapshot to latest crowdsourced names. 2014-02-04 22:56:27 -08:00
Christian f8532711cb Clean up FMLEventChannel. Closes #367. 2014-02-04 20:01:44 -05:00
Lex Manos 45efe4edfd Fix obf error when right clicking a Empty Map. 2014-02-04 12:49:18 -08:00
Christian 9d919f8ac9 Fix up the event handler so it knows it's owned by forge 2014-02-02 12:34:34 -05:00
Christian 67d9dac16d Add a discriminator for fluididspacket. remove extraneous channel handler. 2014-02-02 12:19:37 -05:00
Christian 978bfd6eb1 MinecraftForge/FML@d87822ad85 Bump gradle wrapper to 1.10
MinecraftForge/FML@359ac3ca2a Ensure we check both item and block registries when finding valid IDs. Should fix #365
MinecraftForge/FML@cee0f0b811 Tweak so that writing to the context will automatically send a message back to the originator in handshakeestablished.
2014-02-02 12:18:32 -05:00
Christian 5d811025a7 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 be8d33070e 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 539ee0ea88 Fixed missed parens causing trapdoors to fall off incorrectly. 2014-01-31 15:12:19 -08:00
Lex Manos f85ab543ee Fixed issue where enchantment effects caused slight rendeirng issue. 2014-01-31 14:32:32 -08:00
Lex Manos 498ab360e8 Bump gradle wrapper to 1.10 2014-01-29 21:04:55 -08:00
Lex Manos 51414375e4 Uncomment aa few FluidRegistry entries. 2014-01-29 21:04:34 -08:00
Lex Manos 2b9a2b5c1a Inital Fluid system update, untested. Still in progress. 2014-01-29 18:34:23 -08:00
Lex Manos 51b008c391 Attempt a AIOOB error fix in tesselator when there are alot of transparent blocks in the rendering range. 2014-01-29 16:17:31 -08:00
Lex Manos 0d84da021f Fix NPE when breaking ice. 2014-01-29 15:43:13 -08:00
Christian 3059e517c5 MinecraftForge/FML@544320b8d2 Beginning of a saveinspectionhandler.
MinecraftForge/FML@ab199c5811 Try harder to find a mod container.
MinecraftForge/FML@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:30:12 -05:00
Christian 92f5351cf9 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 e7ba3fd525 Try harder to find a mod container. 2014-01-25 06:17:14 -05:00
Lex Manos f8f1b4211b Fix imporerly efficient tools breaking blocks to fast. 2014-01-24 21:43:47 -08:00
Lex Manos 30a390d4bf Adds a WeatherRender in the style of SkyRender, Closes #844 2014-01-24 19:38:33 -08:00
Lex Manos 790030ab05 Fixed potential NPE in SlotCrafting, and added ItemStack sensitive version fo hasContainerItem. Closes #854 2014-01-24 19:30:17 -08:00
Lex Manos d73f4fb7b3 Move change of metadata to immediatly after change of Block, should prevent any 'invalid' tile entities from breaking created. Reference: #897 2014-01-24 19:21:59 -08:00
Lex Manos 6f7ac27c96 New PlayerUseItemEvents, Start, Stop, Tick and Finish. See PlayerUseItemEvent.java for more details. Closes #924 2014-01-24 19:10:51 -08:00
Lex Manos 6ae2353f41 Don't short circuit item icons for multiple render passes while being used. Closes #929 2014-01-24 17:23:49 -08:00
Lex Manos c62061728b Add the ability for custom records to have finer control over there sound resource location. Closes #933 2014-01-24 17:16:35 -08:00
Lex Manos 796b53f549 Exclude cobblestone slab recipe from ore dictification, closes #940 2014-01-24 16:44:23 -08:00
Lex Manos 6c6f664c30 Implement PlayerPickupXpEvent, fired when a player aquires XP from a EntityXPOrb. Closes #942 2014-01-24 16:31:38 -08:00
Lex Manos 2e47771860 Missing EntityAITasks.tasks and MapgGenStructreIO register ATs, Closes #949 2014-01-24 16:04:41 -08:00
Lex Manos 75a80f2f75 Make ItemBlock.field_150939_a public, closes #945 2014-01-24 16:02:39 -08:00
Lex Manos aaf6dd2b2e Fix Furnace stopping on 63rd Item, Closes #947 2014-01-22 15:35:55 -08:00
Christian bd8e9657d8 Beginning of a saveinspectionhandler. 2014-01-20 22:27:03 -05:00
Christian af011d1a57 MinecraftForge/FML@b6d95d704b Name the log files properly. fml-junk is an early startup annoyance I can't kill because log4j2.
MinecraftForge/FML@8692ca17d1 Log4j2 logging context for things. This should help add context when things go wrong in mods.
MinecraftForge/FML@a7ca131a33 And don't spam NONE everywhere
MinecraftForge/FML@741e172ffe Log4j2 doesn't need debug level logging for itself anymore
2014-01-20 22:04:52 -05:00
Christian acda9b5dd7 Log4j2 doesn't need debug level logging for itself anymore 2014-01-20 22:01:20 -05:00
Christian 294c825cc1 And don't spam NONE everywhere 2014-01-20 22:00:24 -05:00
Christian 5898d2a1f8 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 60abcb6341 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 e653204638 MinecraftForge/FML@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:30:16 -05:00
Christian d92176fe8c 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
Lex Manos adf0e3ab7d Add BookCloning to the recipe sorter. 2014-01-20 14:04:34 -08:00
Christian eeef1137a8 MinecraftForge/FML@9a8d16b66e Fix log4j2 config. Fix server gui to *show* logging. Fix log spamminess in the console. Fix bug in servergui that can cause deadlock.
MinecraftForge/FML@a355eecb2c Add in error logging for outbound messages. Fix bug with indexedcodec NPE
MinecraftForge/FML@1c793abe0e Fix derp with networkcheck
MinecraftForge/FML@675b5a0778 And turn down some more logging, now we have useful logging back again..
2014-01-20 16:15:57 -05:00
Christian cb47b4ac46 And turn down some more logging, now we have useful logging back again.. 2014-01-20 16:09:34 -05:00
Christian d22c79abd7 Fix derp with networkcheck 2014-01-20 16:06:50 -05:00
Christian 9fb9942498 Add in error logging for outbound messages. Fix bug with indexedcodec NPE 2014-01-20 16:02:26 -05:00
Christian 87a45d83fb 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 49886aa633 MinecraftForge/FML@4aa2416ce5 Propagate Optional method removal to trait implementation classes
MinecraftForge/FML@fc025a7b73 Logging Changes
MinecraftForge/FML@f0132a6f3b changed fml log level to all
MinecraftForge/FML@f23eba4352 put max number of FML log files to 3
MinecraftForge/FML@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.
MinecraftForge/FML@3557fe31c9 Throw an exception when discriminator is not found
MinecraftForge/FML@2524045728 Make NetworkEventFiringHandler sharable
MinecraftForge/FML@dfc0899ec6 Merge pull request #357 from jk-5/sharable
MinecraftForge/FML@79d42fca8d Merge pull request #355 from jk-5/errorhandling
MinecraftForge/FML@7907e16e96 Add a type adapter for artifact version. Should fix #354
MinecraftForge/FML@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.
MinecraftForge/FML@5adacc3b33 Check the mod, not it's container, in the check handler. Closes #358
MinecraftForge/FML@3d26f28bcf Allow connection when server is apparently offline. Might allow :NOFML circumvention though. Hmmm. Closes #359
MinecraftForge/FML@a62374d4ac findBlock should now return null, not the default block, if the thing being looked for is not found. Closes #352
MinecraftForge/FML@6a695c4348 Try and stop the epic channel closed spam at close time. Closes #353
MinecraftForge/FML@35a38d7840 Make sidedproxy support non-public fields. Closes #344
MinecraftForge/FML@9d2e089df6 Merge branch 'logging' of github.com:AbrarSyed/FML into abrar-borked
MinecraftForge/FML@79b04898d4 And restore suppressions. ABRAR, DON'T TIDY CODE!!!!
MinecraftForge/FML@3dfb54e066 Merge branch 'trait-optional' of github.com:RainWarrior/FML
MinecraftForge/FML@32bb7315cc Add in example assets dir. Closes #308
MinecraftForge/FML@16d33d2989 Clean up and document outbound handler a bit better. Add in dispatcher target. Closes #361
MinecraftForge/FML@5719b9ec53 Fix reply handling. Make the proxy message available for subclasses of indexedcodec. Fire user events into the network event firing.
2014-01-20 12:03:07 -05:00
Christian 7a3fd048d2 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 62629d4140 Clean up and document outbound handler a bit better. Add in dispatcher target. Closes #361 2014-01-20 11:26:54 -05:00
Christian e21e2d8168 Add in example assets dir. Closes #308 2014-01-20 08:15:55 -05:00
Christian 0189a7c97e Merge branch 'trait-optional' of github.com:RainWarrior/FML 2014-01-20 08:14:27 -05:00
Christian 887392cf1b And restore suppressions. ABRAR, DON'T TIDY CODE!!!! 2014-01-20 08:09:02 -05:00
Christian 932734170d Merge branch 'logging' of github.com:AbrarSyed/FML into abrar-borked 2014-01-20 08:06:45 -05:00
Christian 188488abc3 Make sidedproxy support non-public fields. Closes #344 2014-01-20 07:55:26 -05:00
Christian ad15c01cd8 Try and stop the epic channel closed spam at close time. Closes #353 2014-01-20 07:53:09 -05:00
Christian 8121f3fcae 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 48ff8b895a Allow connection when server is apparently offline. Might allow :NOFML circumvention though. Hmmm. Closes #359 2014-01-20 07:46:17 -05:00
Christian 9c9e04c2e1 Check the mod, not it's container, in the check handler. Closes #358 2014-01-20 07:42:35 -05:00
Christian 1ef1507299 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 755726bb7c Add a type adapter for artifact version. Should fix #354 2014-01-19 10:49:28 -05:00
cpw 608d401b75 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 48403ce488 Merge pull request #357 from jk-5/sharable
Make NetworkEventFiringHandler sharable
2014-01-19 07:37:52 -08:00
jk-5 f080c5d2e8 Make NetworkEventFiringHandler sharable
Fixes #356
2014-01-19 12:27:31 +01:00
jk-5 1a548b5bb5 Throw an exception when discriminator is not found 2014-01-19 11:21:24 +01:00
Christian 44a093e74b 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 a0f021d985 put max number of FML log files to 3 2014-01-19 00:53:58 +00:00
Abrar Syed 41dcef50f7 changed fml log level to all 2014-01-19 00:49:47 +00:00
Lex Manos 28f7f523ee Add support in Techne models for the TextureSize tag. Closes #856 2014-01-18 13:53:54 -08:00
Lex Manos b917d48cff Fixed RenderWorldLastEvent never being called, was missed in 1.7 update. Closes #932 2014-01-18 13:22:09 -08:00
Lex Manos 79ebdfa145 Updated FML: MinecraftForge/FML@444a7d7fa1 Move placement of single player world load hook to fix NPEs. 2014-01-18 13:19:51 -08:00
Lex Manos 189dc35060 Move placement of single player world load hook to fix NPEs. 2014-01-18 13:05:18 -08:00
Lex Manos 612a8a71b0 Fix flexible rails, Closes #944 2014-01-18 04:45:25 -08:00
Lex Manos b93217397c Updated FML:
MinecraftForge/FML@7c5d62704a Make UniqueIdentifier final and add a hashCode. Closes #348
MinecraftForge/FML@ff7b5845e7 Clean up some warnings about @Override
MinecraftForge/FML@275ccac6f1 Fix NPE at startup
MinecraftForge/FML@2a5a8d0cd0 Fix memory leak?!
2014-01-17 21:55:54 -08:00
Lex Manos baf95e747a Fix warnings in Forge codebase. 2014-01-17 21:55:48 -08:00
Christian 3b367fcb8e Fix memory leak?! 2014-01-17 23:36:03 -05:00
Christian d7ed255e17 Fix NPE at startup 2014-01-17 23:35:53 -05:00
Christian b21975b8f0 Clean up some warnings about @Override 2014-01-17 23:19:22 -05:00
Christian b4a6418d1c 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 eeeb4d37e8 Add exception logging to forge channel handlers as well
MinecraftForge/FML@53557dcd05 Put logging exception handlers on all channel inbounds. Fix problem with failure to login. Closes #350
2014-01-17 17:05:11 -05:00
Christian f9bc1f0847 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 b3d8e4ea68 MinecraftForge/FML@9c96ca4402 Fire a custom packet channel registration/deregistration event, for any mods that care about that kind of thing 2014-01-16 19:47:03 -05:00
Christian 135633b2ad 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 b463476815 MinecraftForge/FML@e14efe786f Some fixes and tweaks
MinecraftForge/FML@c013870b1d Merge branch 'simplenet'
MinecraftForge/FML@30882b0c1d Clean up some warnings. Add in simple network impl
MinecraftForge/FML@9cab2ab36e Add in some tests and examples for the "simple" network stuff
MinecraftForge/FML@a429e106dd Fix bug with SSP, and hook so we can do confirmation of world loading, as well as other things
2014-01-16 18:19:28 -05:00
Christian b70742e72d 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 971289194c Add in some tests and examples for the "simple" network stuff 2014-01-16 18:07:25 -05:00
Christian 42c04dab2e Clean up some warnings. Add in simple network impl 2014-01-16 18:06:36 -05:00
Christian c71b7554e0 MinecraftForge/FML@b362e8a273 At the request of AbrarSyed.
MinecraftForge/FML@e344303ec7 Merge pull request #346 from Jezzadabomb338/master
MinecraftForge/FML@a4686b1261 Added basic Mojang account authentication support for development time login.
MinecraftForge/FML@dd17979a2f Fix bukkit connectivity issue.
2014-01-16 15:07:48 -05:00
Christian cb33a05824 Merge branch 'simplenet' 2014-01-16 14:59:13 -05:00
Christian ef1ee38b55 Fix bukkit connectivity issue. 2014-01-16 14:58:28 -05:00
Christian c3974f2e81 Some fixes and tweaks 2014-01-16 09:14:39 -05:00
Christian 3c8bd6346f Updated FML:
MinecraftForge/FML@1db3daa0e8 added override toString method for getting full name.
MinecraftForge/FML@acf74a3403 changed the readme to reflect new setup task.
MinecraftForge/FML@96c19b3580 undid readme change
MinecraftForge/FML@a89939e57e Merge pull request #336 from jadar/master
MinecraftForge/FML@717a8d6945 Fix csv string vs list of strings. Thanks immibis. Closes #334
MinecraftForge/FML@584c0f368b Fix potential ordering issue, clean up some imports
MinecraftForge/FML@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.
MinecraftForge/FML@80b00dc796 Fix openGui. Closes #342
MinecraftForge/FML@fc69bcf280 Fix up privacy derp in TickEvent. Closes #343
MinecraftForge/FML@10d056a494 Fix possible NPE derp
MinecraftForge/FML@5da6dcc7e3 Divert connection through FML, so we can deny connections to servers that don't want us
2014-01-14 22:02:57 -05:00
Lex Manos f125c0ddd3 Added basic Mojang account authentication support for development time login. 2014-01-14 16:49:03 -08:00
LexManos d75a934838 Merge pull request #346 from Jezzadabomb338/master
At the request of AbrarSyed.
2014-01-13 23:11:42 -08:00
Jezzadabomb 14272e4932 At the request of AbrarSyed. 2014-01-14 15:39:24 +11:00
Christian 725aba9d41 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 1a41990745 Fix possible NPE derp 2014-01-13 13:46:22 -05:00
Christian 2e76283ccd Fix up privacy derp in TickEvent. Closes #343 2014-01-13 08:43:33 -05:00
Christian 9017256609 Fix openGui. Closes #342 2014-01-13 08:40:56 -05:00
Christian 670f76accd 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 7a8eda46c4 Fix potential ordering issue, clean up some imports 2014-01-11 22:01:01 -05:00
LexManos 0296803fe3 Merge pull request #926 from iChun/master
Fix erroneous position when getting player position with changed eye height.
2014-01-11 17:32:27 -08:00
iChun b1f8af7f55 Squash commits so Lex would stop whining. Fix erroneous position when getting player position with changed eye height. 2014-01-12 07:59:39 +08:00
AbrarSyed 5176bc8841 Logging Changes 2014-01-11 16:43:14 +00:00
RainWarrior 8639a76726 Propagate Optional method removal to trait implementation classes 2014-01-10 00:56:00 +04:00
Christian f6476c1970 Fix csv string vs list of strings. Thanks immibis. Closes #334 2014-01-09 14:55:52 -05:00
cpw 6cdc949de7 Merge pull request #336 from jadar/master
added override toString method for getting full name.
2014-01-09 11:54:54 -08:00
Christian 3c0ef2cce8 Updated FML:
MinecraftForge/FML@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
MinecraftForge/FML@dd098854b0 Fix the keybinding array to the right one
MinecraftForge/FML@43068eb986 Fix TargetPoint to be static
2014-01-09 08:44:52 -05:00
Christian ad305ef997 Fix TargetPoint to be static 2014-01-09 08:41:52 -05:00
Christian abf452f889 Fix the keybinding array to the right one 2014-01-09 08:40:42 -05:00
Christian f7d932d418 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
Lex Manos aab5b04a6d Attempt to prevent a NPE when MC renders a lot of things at once. 2014-01-06 20:25:34 -08:00
Jadar 13c998ae5e undid readme change 2014-01-06 15:58:42 -06:00
Jadar 37b0797e3e changed the readme to reflect new setup task. 2014-01-06 11:09:34 -06:00
Jadar 183c317b83 added override toString method for getting full name. 2014-01-06 10:25:13 -06:00
LexManos 4e45156eaf Merge pull request #928 from Minalien/master
Fixed issue with forward-slashes in texture names when registering icons, fixed custom item renderer retrieval.
2014-01-05 21:08:06 -08:00
Ken 'Minalien' Murray 9e91b0ca81 Fixed MinecraftForgeClient for custom Item Renderer implementations. Removed check for forward-slashes (/) in texture asset locations (but left check for backslash in place). 2014-01-05 21:55:04 -07:00
Lex Manos 08eb897996 MinecraftForge/FML@0d810c01fa Mark jopt needed on the server, herp derp, blame Abrar! 2014-01-05 19:08:00 -08:00
Lex Manos 5e4ddab6ba Mark jopt needed on the server, herp derp, blame Abrar! 2014-01-05 19:02:47 -08:00
Lex Manos 0da954cc10 Fix DoublePlant placement, closes #921 2014-01-04 13:07:05 -08:00
Lex Manos a1b68d938d Deprecate BlockFire.func_149842_a, and throw exception if someone tries to set the burn properties for air. Should prevent 'The Air is on fire!' reports. 2014-01-04 13:06:31 -08:00
LexManos 325423ab02 Merge pull request #919 from VeryBigBro/patch-2
Create ru_RU.lang
2014-01-04 00:08:43 -08:00
Anton 9523059d85 Create ru_RU.lang 2014-01-04 09:28:29 +03:00
Christian 95c12b6c20 Updated FML:
MinecraftForge/FML@5317672631 Add a utility method for finding the channel handler name based on type. Should fix naming weirdnesses.
MinecraftForge/FML@9de9a15530 Fix stupid hardcoding derp
2014-01-03 23:07:55 -05:00
Christian 7f05ffa511 Fix stupid hardcoding derp 2014-01-03 23:04:24 -05:00
Christian d102e694c8 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
Lex Manos b6199c202e Fixed pipeline naming issue in the ForgeNetworkHandler. 2014-01-03 18:54:52 -08:00
LexManos 367c5d1ede Merge pull request #882 from Vexatos/patch-2
Create de_DE.lang
2014-01-03 18:29:55 -08:00
Lex Manos ef5d66ebd2 Fixed the run config for dev time server, Cloases #913 2014-01-03 17:29:40 -08:00
Lex Manos 3953eb3f6c Fix panes/iron bars not connecting correctly. Closes #904 2014-01-03 17:26:40 -08:00
Lex Manos b149ccbc17 Models now load from resource packs
Models must now be loaded from resource packs using the standard resource pack reference. For example, to load a model named "assets/mymod/models/mymodel.obj", you would call AdvancedModelLoader.loadModel("mymod:models/mymodel.obj");
Closes #670
2014-01-03 17:10:15 -08:00
Lex Manos df0b1751e6 Fixing an infinite recursion case, Closes #916 2014-01-03 16:50:02 -08:00
LexManos bb756115fa Merge pull request #915 from Adubbz/master
Made canBeReplacedByLeaves default to whether a block isn't opaque rathe...
2014-01-03 16:14:37 -08:00
Adubbz 48a9e24630 Made canBeReplacedByLeaves default to whether a block isn't opaque rather than if it is, also uninverted the checks for canBeReplacedByLeaves in WorldGenBigMushroom, WorldGenSwamp, WorldGenTaiga1 and WorldGenTaiga2 2014-01-03 18:00:11 +11:00
Christian 3896a63016 Fix inversion 2014-01-02 22:52:04 -05:00
Christian 50144d178a Updated FML:
MinecraftForge/FML@6f1da6550e Fix up mcpname derp in GuiScrollingList.
2014-01-02 22:46:42 -05:00
Christian ec0d44b8c9 Fix up mcpname derp in GuiScrollingList. 2014-01-02 22:44:26 -05:00
Christian e0840e392c Updated FML:
MinecraftForge/FML@21b13d6351 Lots of network cleanup. Gui packets now work too!
MinecraftForge/FML@b3f98d1ee0 Fix derpiness with Mods button when Realms is available
MinecraftForge/FML@cdd9d92a4f Starting work on the actual GUI. Still work to do. Needs an API.
MinecraftForge/FML@ab5eb3ccff Fix button size for GuiModList
MinecraftForge/FML@3113138bd1 Tweak button positions.
MinecraftForge/FML@c5e29b574a Avoiding redundant calls to LogManager
MinecraftForge/FML@fbc1f8f6f9 Config GUIs in the modlist now work.
MinecraftForge/FML@fa4f3015a0 Added transparent background for GuiIngameModOptions as per cpw's request. May not compile due to manual de-mcp-fication.
MinecraftForge/FML@7bf119e1e5 Fix up readmes and credits. We no longer support modloader.
MinecraftForge/FML@779cd05aa1 Tweaks
MinecraftForge/FML@b51fb91355 Merge branch 'patch-1' of github.com:airbreather/FML
2014-01-02 22:27:42 -05:00
Christian c67e3d3abe Merge branch 'patch-1' of github.com:airbreather/FML 2014-01-02 22:21:25 -05:00
Christian 62dde437ca Tweaks 2014-01-02 22:18:02 -05:00
Christian 43dd8a8ee7 Fix up readmes and credits. We no longer support modloader. 2014-01-02 22:18:02 -05:00
iChun 5eaedffe3b 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 aa963c5df6 Config GUIs in the modlist now work. 2014-01-02 11:51:16 -05:00
airbreather 37686f33af Avoiding redundant calls to LogManager 2014-01-01 11:40:32 -05:00
Vexatos e6bfb6b7b3 Update de_DE.lang 2014-01-01 09:06:40 +01:00
LexManos 165cbd1c48 Merge pull request #912 from Adubbz/master
Fixed sky colour transitions on a render distance of 16, fixed the World...
2013-12-31 23:53:45 -08:00
Adubbz bd5e7f8118 Fixed sky colour transitions on a render distance of 16, fixed the WorldGen of various things 2014-01-01 18:50:52 +11:00
Christian 7a62801209 Tweak button positions. 2014-01-01 02:09:40 -05:00
iChun 29d84cc6af Fix button size for GuiModList 2014-01-01 14:16:23 +08:00
Christian 584ad55ce6 Starting work on the actual GUI. Still work to do. Needs an API. 2014-01-01 00:57:24 -05:00
Christian a9ae906546 Fix derpiness with Mods button when Realms is available 2013-12-31 20:21:28 -05:00
Christian 3e0285e508 Lots of network cleanup. Gui packets now work too! 2013-12-31 19:55:41 -05:00
LexManos ccee30b15e Merge pull request #908 from jk-5/patch-1
Add constructors to DimensionRegisterMessage
2013-12-31 13:08:56 -08:00
Lex Manos 32f26561b1 Fix inverted login in BlockPistonBase causing blocks to break incorrectly. Closes #910 #909 2013-12-31 13:07:44 -08:00
Lex Manos ea0be720a1 Update patches for AT changes. 2013-12-31 13:03:45 -08:00
Lex Manos b31fbe528a Update for the FMLEmbeddedChannel change. 2013-12-31 12:48:59 -08:00
Christian 2f13622d37 Updated FML:
MinecraftForge/FML@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:46:50 -05:00
Christian e4d2f73fe2 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
jk-5 03c4282ebf Added default constructor for reflection 2013-12-31 08:21:05 +01:00
jk-5 5ff5f1b0d5 Added a constructor and made the fields package-private 2013-12-30 21:58:53 +01:00
jk-5 07fa6615f8 Update ForgeMessage.java 2013-12-30 20:12:15 +01:00
Christian 941c2b1d14 Fix build.gradle for tweakClass property
Updated FML:
MinecraftForge/FML@f36152398d Add in the tweakclass, fix the json for lzma @ the server.
2013-12-30 13:27:15 -05:00
Christian a80409c59a Add in the tweakclass, fix the json for lzma @ the server. 2013-12-30 13:06:59 -05:00
Christian aa67bc5da6 Updated FML:
MinecraftForge/FML@5d069629cf Allow itemstacks for furnace recipe inputs. Allow passing extra arguments through registerblock into the itemblock constructor.
2013-12-28 18:06:18 -05:00
Christian 9caa3842cf 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 946166f13e Updated FML:
MinecraftForge/FML@061288909d Fire simple network connect/disconnect gameevents.
2013-12-28 17:53:29 -05:00
Christian e27b438f7d Fire simple network connect/disconnect gameevents. 2013-12-28 17:51:40 -05:00
Christian 6ab5ef1315 Merge branch 'master' of github.com:Adubbz/MinecraftForge 2013-12-28 17:02:41 -05:00
Christian 5c647d4515 Fix the network handler for forge 2013-12-28 17:01:58 -05:00
Christian 906ced3c32 Updated FML:
MinecraftForge/FML@34819c9303 Make gradlew executable on linux
MinecraftForge/FML@53a1f98414 Attempt to load old pre-1.7 worlds. ENSURE YOU HAVE A BACKUP!
MinecraftForge/FML@6a5f9e135f Fix example mod code for 1.7
2013-12-28 13:49:18 -05:00
Christian 7b7b8245db Fix example mod code for 1.7 2013-12-28 13:44:37 -05:00
Adubbz 164fa8f646 Made BlockCrops.getDrops call its super method 2013-12-28 23:15:09 +11:00
Christian f075264d6f Allow tools to override their material harvest levels. 2013-12-27 23:48:10 -05:00
Christian cf3447feea Tidier implementation of previous commit. Should fix for subclasses of individual tools too 2013-12-27 21:48:42 -05:00
Christian 78b1b54e2b Add in harvesting abilities of the items, should fix effectiveness 2013-12-27 21:26:42 -05:00
Christian c68f3119a4 Attempt to load old pre-1.7 worlds. ENSURE YOU HAVE A BACKUP! 2013-12-27 11:48:55 -05:00
Christian fa0bce3efb Make gradlew executable on linux 2013-12-27 11:26:46 -05:00
Christian b7eac150cc Updated FML:
MinecraftForge/FML@f8d6213829 Update render registry
MinecraftForge/FML@ec316f113f AT for renderblocks
2013-12-27 00:09:22 -05:00
Christian 3030324b99 AT for renderblocks 2013-12-27 00:08:49 -05:00
Christian 59405fc7ee Update render registry 2013-12-27 00:07:48 -05:00
Christian a9876475c1 Updated FML:
MinecraftForge/FML@268bbabee6 Fix handling world reloads when new stuffs are added
2013-12-26 12:43:34 -05:00
Christian 2362fdb9d5 Fix handling world reloads when new stuffs are added 2013-12-26 12:42:40 -05:00
LexManos 46296328ff Merge pull request #893 from iChun/master
Add render offset to event.
2013-12-25 01:05:45 -08:00
iChun 5f3ece629c Add render offset to event. 2013-12-25 17:03:19 +08:00
Lex Manos a6827f9820 Fix dig speed on redstone ore and obsidian. 2013-12-25 00:41:21 -08:00
Lex Manos 40d02fe6c3 Add a version check mechanic to startup, it is done in a seperate thread and has a config option to compleetly disable it. This allows us to notify users of new recomended builds. Hopefully stemming the flow of outdated help request. Also adds a warning to the main screen if you are running a 'Beta' Forge. Which means a Forge for a new version of Minecraft that we have not promoted a recomended build for yet. 2013-12-25 00:35:59 -08:00
Lex Manos 572bc48a25 Resize pending tile updates when it goes over the curent length. Fixed AIOOB error. 2013-12-24 19:59:34 -08:00
Lex Manos 1959e414e2 Forgot to regen patches... 2013-12-23 22:45:45 -08:00
Lex Manos 08a875c39a Added constructor to WorldType, and delegated the BiomeLayer management to it. Also updated the access transformer for Item/Block classes. 2013-12-23 22:40:54 -08:00
Lex Manos 90be589ffa MinecraftForge/FML@c180d9b157 Add 1.7.2 base json, Gradle will automatically download updated versions of this. Keeping it in the repo allows us to se
e what base json we have built our jsons off of. And if it changes update accordingly.
2013-12-23 22:40:54 -08:00
Christian 780865cfed Updated FML:
MinecraftForge/FML@156a9ae03a Fix build script
MinecraftForge/FML@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 01:37:25 -05:00
Lex Manos f4fc6377b3 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 41e930a4b9 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
Lex Manos d795f1b898 Fix items rendering on the GUI with invalid state due to glint rendering changing it. Thanks iChun. 2013-12-23 20:58:48 -08:00
Lex Manos ecf8d29724 Fixed accedential inverted logic that caused Potions to render incorrectly. Thanks iChun. 2013-12-23 20:47:07 -08:00
Lex Manos 8ca1179e04 Move Grass {Flower} registry to BiomeGenBase as 1.7 made flowers Biome specifc, this means modders who wish to add global base flowers need to add them to all the biomes indavidually. 2013-12-23 20:34:39 -08:00
Lex Manos 96e23516f6 Temporary fix for items rendering with effects on one layer. Restores default vanilla rendering, which is considered a bug in modded community. 2013-12-23 20:33:32 -08:00
Lex Manos 2102965fac Fix debug HUD rendering semi-transparently. 2013-12-23 20:32:37 -08:00
Christian 54731a2acc Fix build script 2013-12-23 20:24:54 -05:00
Lex Manos 436f7fc550 Bump version to 10.12.0 to mark 1.7. 2013-12-22 18:48:22 -08:00
Lex Manos 2b10a2b874 Updated FML:
MinecraftForge/FML@58132ccda3 Add new required --accessToken to launch specs.
2013-12-22 18:37:53 -08:00
Lex Manos 20e0f821b3 Add new required --accessToken to launch specs. 2013-12-22 18:35:50 -08:00
Lex Manos 9ee5053b71 Fix:
Block placement/interaction
  Tesselator crash due to wrong mapping
  Missing isreplaceable check in world.canPlaceAt
  Small foratting/logging cleanup
  Temporarly commented out efficancy changes till I implement it.
2013-12-22 18:25:26 -08:00
Lex Manos 30494f8ddb Fix MethodNotFound crash when shutting down internal server. 2013-12-22 18:22:57 -08:00
Lex Manos 21e505c334 Forge uses the FORGE channel for packets. 2013-12-22 18:21:56 -08:00
Lex Manos 7e668ca9ac Get object based on identity not name. 2013-12-22 18:21:43 -08:00
LexManos 1d556a5668 Merge pull request #890 from bloodmc/master
Refactored BiomeManager stronghold add/remove methods to support new MapGenStronghold dynamic biome changes.
2013-12-22 15:52:37 -08:00
bloodshot 8654623271 Refactored BiomeManager stronghold add/remove methods to support new
MapGenStronghold dynamic biome changes.
Changed InitNoiseGensEvent to pass a NoiseGenerator array instead of
NoiseGeneratorOctaves due to new NoiseGeneratorPerlin in
ChunkProviderGenerate.
Fixed worldgen crash caused by wrong metadata in Chunk patch.
2013-12-22 18:47:51 -05:00
Lex Manos e1c0cad8e1 Updated FML:
MinecraftForge/FML@a17489172c Code to disable mods at runtime, or other times.
MinecraftForge/FML@85516d9588 ICraftingHandler, IPickupHandler are now both events.
MinecraftForge/FML@e4b63a1801 IWorldGenerator now has an ordering at registration time. This means the order of worldgen should be much more stable.
MinecraftForge/FML@ef3856f9a3 Update patches for Gradle's rename rewrite: MinecraftForge/ForgeGradle@19e7acf2a2
MinecraftForge/FML@31ea100b29 Working on id missing handling
MinecraftForge/FML@3e76dfba34 More tweaking on id stuffs at worldload
MinecraftForge/FML@f860c8ad3b bump to legacy launcher 1.9 with logging unification stuffs.
2013-12-22 03:07:48 -08:00
Lex Manos a6c45a7ade Inital patch update for 1.7.2, Doesn't compile, not done yet. 2013-12-22 03:06:10 -08:00
Christian 61c6980105 bump to legacy launcher 1.9 with logging unification stuffs. 2013-12-18 11:15:53 -05:00
Christian 8b621292e3 More tweaking on id stuffs at worldload 2013-12-18 11:15:03 -05:00
Christian f6f746ceca Working on id missing handling 2013-12-18 08:34:44 -05:00
Lex Manos 78f822e51c Update patches for Gradle's rename rewrite: MinecraftForge/ForgeGradle@19e7acf2a2 2013-12-18 04:01:37 -08:00
Christian 58fc22e6b4 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 5aa0054f23 ICraftingHandler, IPickupHandler are now both events. 2013-12-17 11:24:57 -05:00
Christian 751c5e39a4 Code to disable mods at runtime, or other times. 2013-12-17 10:51:00 -05:00
Christian cd34090eb8 Updated FML:
MinecraftForge/FML@32561265fc Ticks, Player events, keybindings, all migrated to the new event driven system.
2013-12-16 23:20:06 -05:00
Christian 95f0447881 Ticks, Player events, keybindings, all migrated to the new event driven system. 2013-12-16 23:18:00 -05:00
Christian ae478c92a2 Moved the core event handler parts to FML. Implemented the Forge network handler based on the new
netty strategy.

Updated FML:
MinecraftForge/FML@3b2994a3de Some patching touchups
MinecraftForge/FML@557357fe17 Update for log4j2
MinecraftForge/FML@a2b324beb2 Copy eventhandler from Forge into FML. It is going to replace a lot of the runtime event systems.
MinecraftForge/FML@4071ff38af Patch some GUIs. We're gonna add some basic mod gui config support.
MinecraftForge/FML@0b419ac79c Fire a user event down the channels when a handshake has occured.
2013-12-16 20:19:03 -05:00
Christian 041054ea8b Fire a user event down the channels when a handshake has occured. 2013-12-16 20:00:01 -05:00
Christian 69ce79e1d7 Patch some GUIs. We're gonna add some basic mod gui config support. 2013-12-16 11:48:39 -05:00
Christian 26056619a9 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 a0fcbdccb5 Update for log4j2 2013-12-16 11:47:48 -05:00
Lex Manos 439dbd8bb3 Killed a few hundred compile errors. 2013-12-12 23:32:36 -08:00
Lex Manos 9cf0a5b68b Comment out fluids until King gets his hands on it 2013-12-12 23:32:18 -08:00
Lex Manos 6eb9915690 Updated FML:
MinecraftForge/FML@1d71c017f4 ID syncing.
MinecraftForge/FML@fd36f50d82 Cleanups
MinecraftForge/FML@89e4e483c2 Add in a remapping event for mods to consume.
MinecraftForge/FML@cd417c6786 Fixed remote and local connections work with mods now.
MinecraftForge/FML@ef492407ef Entity spawning works.
MinecraftForge/FML@d0d31d9575 SpawnAdjustment packet. Clean up stuffs. No more compile errors.
MinecraftForge/FML@3e278acb71 Fix stupid possible compiler error.
MinecraftForge/FML@009d4dee23 Fix the exc file. Fix the deobfremapper for handling inner classes.
MinecraftForge/FML@49cb893d12 Fix exc this time *sigh*
MinecraftForge/FML@31efcfc3b2 Clean up patches for latest exc.
MinecraftForge/FML@7a4ceebf5e Kill old patches and add rejects to ignore file.
MinecraftForge/FML@7ea571f593 Fix AT, Fix exc. Almost works now!
MinecraftForge/FML@b852e30285 First functional release under reobfuscation.
MinecraftForge/FML@df870c1a33 Update shiped ForgeGradle for 1.7
MinecraftForge/FML@55aa337f95 Rename synthetic bridge methods, these methods are not decompiled, but need to reobf correctly cross the recompile boundary.
MinecraftForge/FML@0098c57f94 Merge pull request #316 from AbrarSyed/patch-4
2013-12-12 22:59:35 -08:00
Christian d188a5ad82 Some patching touchups 2013-12-13 00:18:05 -05:00
LexManos ed62082e1e Merge pull request #316 from AbrarSyed/patch-4
Update shiped ForgeGradle for 1.7
2013-12-12 17:23:04 -08:00
Lex Manos 5e6ff7e729 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 e4fe6ab949 Update shiped ForgeGradle for 1.7 2013-12-12 17:11:37 -06:00
Christian e4479b81cb First functional release under reobfuscation. 2013-12-12 18:01:09 -05:00
Christian 7956c2f659 Fix AT, Fix exc. Almost works now! 2013-12-12 01:39:30 -05:00
Lex Manos 1322e3407b Kill old patches and add rejects to ignore file. 2013-12-11 20:39:15 -08:00
Christian b3e35e381f Clean up patches for latest exc. 2013-12-11 23:03:30 -05:00
Christian 7b93e40d7c Fix exc this time *sigh* 2013-12-11 22:58:46 -05:00
Christian 1533d88ef8 Fix the exc file. Fix the deobfremapper for handling inner classes. 2013-12-11 22:54:51 -05:00
Christian fb7913f583 Fix stupid possible compiler error. 2013-12-11 20:17:08 -05:00
Christian 5e57ce519e SpawnAdjustment packet. Clean up stuffs. No more compile errors. 2013-12-11 19:29:52 -05:00
Christian 5086f22370 Entity spawning works. 2013-12-11 18:46:25 -05:00
Christian 5eb2aec84e Fixed remote and local connections work with mods now. 2013-12-11 12:35:08 -05:00
Vexatos ca7a404fc8 Create de_DE.lang 2013-12-11 15:17:20 +01:00
Christian 4f6aabda09 Add in a remapping event for mods to consume. 2013-12-10 19:25:49 -05:00
Christian 985e4ceb4a Cleanups 2013-12-10 17:29:26 -05:00
Christian 531334b122 ID syncing. 2013-12-10 14:32:06 -05:00
Lex Manos 4a1a0be51d Updated FML:
MinecraftForge/FML@a30f173627 Add sonatype snapshots repo for SpecialSource snapshots.
MinecraftForge/FML@b2550b8a69 Add mappings for Items/Blocks fields.
MinecraftForge/FML@57f7f1d7ab Update for fixed Enum cleaning and names.
MinecraftForge/FML@99c681ad87 Did it manually, forgot it needed the end comma
2013-12-09 22:03:39 -08:00
Lex Manos 521b8a16c4 Some work on 1.7, waiting for Abrar to fix a few things. 2013-12-09 21:59:12 -08:00
Lex Manos 9f76245783 Did it manually, forgot it needed the end comma 2013-12-09 20:49:37 -08:00
Lex Manos cf6b9e7c1a Update for fixed Enum cleaning and names. 2013-12-09 20:44:17 -08:00
Lex Manos d92633d368 Add mappings for Items/Blocks fields. 2013-12-09 20:43:57 -08:00
Lex Manos cda439fe9d Add sonatype snapshots repo for SpecialSource snapshots. 2013-12-09 20:43:27 -08:00
Lex Manos d4e7a5c68e Bump data for 1.7 start. 2013-12-09 18:47:55 -08:00
Lex Manos b474c2ca7a Kill liquids finally. 2013-12-09 18:47:15 -08:00
Lex Manos 4142f7c728 MinecraftForge/FML@3714426e19 fix derp in example builscript
MinecraftForge/FML@01fb451b69 Merge pull request #311 from AbrarSyed/patch-3
MinecraftForge/FML@30d532f4fc Pass 1: Most patches are restored.
MinecraftForge/FML@53127eec30 Merge branch 'master' of github.com:MinecraftForge/FML
MinecraftForge/FML@7ab3c3a37c Update gitignore
MinecraftForge/FML@38cec7a11f The basic network handshaking for FML is done. All scenarios seem to work.
MinecraftForge/FML@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.
MinecraftForge/FML@58f7487cfa Check in patches. Add in some network timeout tweaking values so you can debug the network.
MinecraftForge/FML@e544adba5c More cleanup. Bidirectional server <-> client network works for mods as well as FML|HS now.
MinecraftForge/FML@f5c38e2359 OK, network channels appear to be working well for both dedi and integrated servers. The beginnings of the new mod structure too.
MinecraftForge/FML@9c96a0a10a More network stuff, partially done id syncing.
MinecraftForge/FML@2aaaeba15e ID loading from the server save now works.
2013-12-09 18:45:17 -08:00
Christian 4fc600010e ID loading from the server save now works. 2013-12-09 21:36:49 -05:00
Christian eff9a3cedc More network stuff, partially done id syncing. 2013-12-09 01:22:24 -05:00
Christian bead2dab97 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 89c7a02146 More cleanup. Bidirectional server <-> client network works for mods as well as FML|HS now. 2013-12-06 11:17:40 -05:00
Christian add83f145a 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 1c44a6c181 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 fadff73489 The basic network handshaking for FML is done. All scenarios seem to work. 2013-12-04 00:11:08 -05:00
Christian 37a00f0158 Update gitignore 2013-12-02 23:54:15 -05:00
Christian e5ffbd7fdf 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 f10969e3aa 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 b501f21624 Merge pull request #311 from AbrarSyed/patch-3
fix derp in example builscript
2013-11-27 02:13:42 -08:00
Abrar Syed 75b64fe9b8 fix derp in example builscript 2013-11-26 14:23:31 -06:00
Lex Manos 54c440d75c Bump build for gradle fixes:
Now Builds for java 1.6
  Include version,json in universal
  Fixed classpath issues in eclipse task.
2013-11-20 23:44:54 -08:00
LexManos 954d46e587 Merge pull request #868 from luacs1998/patch-1
Update readme for ForgeGradle
2013-11-20 21:47:08 -08:00
Lex Manos 198539479f Updated FML: MinecraftForge/FML@c2b919d339 Don't validate signatures in dev env. 2013-11-20 20:41:20 -08:00
Lex Manos 45aa1485b3 Don't validate signatures in dev env. 2013-11-20 13:18:26 -08:00
luacs1998 30680d0268 Update README.txt 2013-11-20 22:49:20 +08:00
luacs1998 c1c88644ae Another update for eclipse users 2013-11-20 16:16:48 +08:00
luacs1998 36ce23073c Updated 2013-11-20 16:09:34 +08:00
luacs1998 45e2d12d06 Update readme for ForgeGradle
Let me know if there's anything else to add or change.
2013-11-20 15:49:08 +08:00
Lex Manos e18a7569f8 Fix build file pom closures. 2013-11-19 16:47:50 -08:00
Lex Manos 3470b44e9a Proper configuratuion name for jenkins. 2013-11-19 15:35:06 -08:00
LexManos 23cfb03a3b Merge pull request #867 from GUIpsp/master
Fix gradle wrapper.
2013-11-19 15:15:09 -08:00
Guilherme Espada 918f91bc44 Make the gradle wrapper executable. 2013-11-19 22:37:52 +00:00
LexManos 6ff7584f96 Merge pull request #859 from AbrarSyed/master
Gradlization
2013-11-19 14:13:56 -08:00
Lex Manos b15289113b update build.gradle 2013-11-19 16:00:07 -06:00
Lex Manos 99faaae9f6 Regenerate all patches, No functional change as added this is a formatting change only. 2013-11-18 17:17:45 -08:00
Lex Manos 0999017fda Updated FML:
MinecraftForge/FML@e9a7660cb8 updated samples
MinecraftForge/FML@30894f7afa Merge pull request #307 from AbrarSyed/master
MinecraftForge/FML@c4b8a393f9 Make the working directory the root of the eclipse workspace.
2013-11-18 17:17:22 -08:00
Lex Manos 34f4b58f69 Update run configs. 2013-11-18 16:19:31 -08:00
Lex Manos 7b737de2c1 Make the working directory the root of the eclipse workspace. 2013-11-17 19:26:21 -08:00
LexManos c45c99d07c Merge pull request #307 from AbrarSyed/master
updated samples
2013-11-17 17:58:01 -08:00
AbrarSyed af3e74d940 updated samples 2013-11-17 18:21:24 -06:00
Lex Manos e9af710cf4 Fix for new FML, and publish to maven local 2013-11-17 12:01:31 -08:00
AbrarSyed 74104fe5d0 Update forge 2013-11-17 12:07:22 -06:00
LexManos a5efa91e6a 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
Lex Manos 45cc0bd87c Fix NPE in FakePlayers when they are created in a purely client side environment. To remove in 1.7 as FakePlayers should be used for server side interaction with the world on a player's behalf, not for client rendering. 2013-11-16 15:26:52 -08:00
Lex Manos 77c5caffd5 Fix NPE on specific tile entities when the block break event is canceled. Closes #863 2013-11-16 15:26:00 -08:00
AbrarSyed f5335d59cc added buildSrc to the gitIgnore 2013-11-14 20:22:31 -06:00
Christian 28abe2cc3c Updated FML:
MinecraftForge/FML@23baf3a8ce Actually fix the nethandler code

Update patches
2013-11-13 19:16:24 -05:00
Christian b7b97efe81 Actually do it correctly. Should be more forge friendly now. 2013-11-13 19:10:11 -05:00
Christian 90e3b49ea5 Merge branch '1.6.4' 2013-11-13 07:55:12 -05:00
Christian 745d601831 Updated FML:
MinecraftForge/FML@da72640c7e Way to go, missing import. *sigh*
2013-11-13 07:46:04 -05:00
Christian 56c9c3c77f Way to go, missing import. *sigh* 2013-11-13 07:45:37 -05:00
Christian 9fd39ebe79 Updated FML:
MinecraftForge/FML@b7f34629c3 Don't try and open GUIs on the server.
2013-11-12 18:05:04 -05:00
Christian c060a44371 Don't try and open GUIs on the server. 2013-11-12 18:04:25 -05:00
Christian 4f05808b8e Don't send openGui commands from the fakeplayer. Fixes thaumcraft and probably others. 2013-11-12 17:33:24 -05:00
Christian c8e249f919 Updated FML:
MinecraftForge/FML@6af42bc656 Add in null protection for client/server sides of handleChat
2013-11-12 17:22:20 -05:00
Christian b8ece10f0b Merge branch '1.6.4' 2013-11-12 17:02:08 -05:00
LexManos 7adccac8ec Merge pull request #855 from CovertJaguar/patch-4
Fix Water/Lava Fluid Localization
2013-11-12 10:00:37 -08:00
CovertJaguar 0a12840e68 Fix Water/Lava Fluid Localization 2013-11-12 01:05:13 -08:00
Lex Manos 1bd3e96e6e Noop out FakePlayer.addStat. 2013-11-11 13:15:06 -08:00
pahimar 95a8b419ef Add in null protection for client/server sides of handleChat 2013-11-11 14:12:02 -05:00
Christian 82004fe703 Kill more references to modloader. 2013-11-10 13:15:26 -05:00
Christian 2867dfdfa5 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 5cec48da72 Deprecation cleanup. Bye bye more modloader stuffs 2013-11-10 11:58:34 -05:00
Christian a8e44dad47 First pass : kill modloader, clean up warnings 2013-11-10 11:49:06 -05:00
AbrarSyed cdbdd0d6fb fixed versioning and stuff 2013-11-10 00:54:57 -06:00
AbrarSyed 743d10d50e Step 3: The Rebirth 2013-11-09 21:48:53 -06:00
Lex Manos 394cfa940e 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 0ad83d84c5 Merge pull request #302 from AbrarSyed/patch-1
Update 1.6.4-rel.json
2013-11-09 19:15:34 -08:00
Abrar Syed 43bcf33f49 Update 1.6.4-rel.json 2013-11-09 21:14:58 -06:00
Christian 4cefffa1c9 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
AbrarSyed 797399ff7f Step 2: The Reformation 2013-11-09 15:57:08 -06:00
AbrarSyed 9332673944 update FML for gradle changes 2013-11-09 15:53:05 -06:00
AbrarSyed f9563e5a34 Step 1: The Purge 2013-11-09 15:44:50 -06:00
Christian 84fd2a147e Updated FML:
MinecraftForge/FML@3d25b4e793 Add in the ability to strip interface references for specific interfaces - this is probably mostly useful for scala scenarios where sythetic methods are generated and is not a substitute for using Optional.Method where appropriate. Closes #300
2013-11-09 14:36:42 -05:00
Christian e378a24759 Fix license and naming 2013-11-09 14:28:54 -05:00
AbrarSyed 923b2069ec added src distribution gradle file 2013-11-09 14:28:54 -05:00
Lex Manos b4a5c25d36 Move to install to not clutter root directory with the .bat and .sh files I know are coming. 2013-11-09 14:28:54 -05:00
Lex Manos e034f74311 Include eclipse template workspace, for packaging in src distro. 2013-11-09 14:28:54 -05:00
Lex Manos 8364a4e522 Add gradle wrapper 2013-11-09 14:28:53 -05:00
Lex Manos d0bae88b04 Publish to repo folder for local testing. 2013-11-09 14:28:53 -05:00
AbrarSyed c272eceac8 Step 3: The Rebirth 2013-11-09 14:28:53 -05:00
Lex Manos d41794a9b6 Step 2: The Reformation 2013-11-09 14:28:53 -05:00
AbrarSyed d2d36880b0 Step 1: The Purge 2013-11-09 14:28:53 -05:00
Christian 7831555a7f Add in the ability to strip interface references for specific interfaces - this is probably mostly useful for
scala scenarios where sythetic methods are generated and is not a substitute for using Optional.Method where appropriate.
Closes #300
2013-11-09 14:27:15 -05:00
LexManos cfd368e18f Merge pull request #852 from MinecraftForge/breakevent
Merge BreakEvent branch, as nobody has told me that it breaks everything. And in prep from 1.7.
2013-11-09 00:43:58 -08:00
Christian a9c795b54c Updated FML:
MinecraftForge/FML@f4532410ec Change a couple of warnings, as a prelude to 1.7- preinit is now required for all GameRegistry activity, and every item and block REQUIRES registration.
2013-11-06 16:19:40 -05:00
Christian 3b42a14dba Change a couple of warnings, as a prelude to 1.7- preinit is now required for all GameRegistry activity, and every item and block REQUIRES registration. 2013-11-06 16:18:41 -05:00
Christian 8fb4546437 Updated FML:
MinecraftForge/FML@8f87021b0f Fix derp with custom properties. They work now!
2013-11-05 22:24:36 -05:00
Christian 83d8713bea Fix derp with custom properties. They work now! 2013-11-05 22:23:24 -05:00
Christian d316d74933 Updated FML:
MinecraftForge/FML@bc57ff9e83 Fix recursive API dependency resolution. Allows nested APIs, such as BuildCraft's
2013-10-31 09:40:18 -04:00
Christian 289678252b Fix recursive API dependency resolution. Allows nested APIs, such as BuildCraft's 2013-10-31 09:39:34 -04:00
Christian ebfaf83bd9 Updated FML:
MinecraftForge/FML@de8ab934d8 Fix up duplicate entries
2013-10-30 22:46:40 -04:00
Christian cfeebf7810 Fix up duplicate entries 2013-10-30 22:46:19 -04:00
Christian a103fbc0e6 Updated FML:
MinecraftForge/FML@81fe1c9682 Add in an API marker for API type packages. This does several things: 1. Packages marked as API will generate a new "modid" (the provides) that can be depended on. 2. Packages marked as API will be searched systemwide, and anything declaring that package (even without the API marker) will get an implicit dependency on the API package. 3. The API package itself will get a soft dependency on the "owner" package.
2013-10-30 22:30:02 -04:00
Christian ee8630bc55 Add in an API marker for API type packages.
This does several things:
1. Packages marked as API will generate a new "modid" (the provides) that can be depended on.
2. Packages marked as API will be searched systemwide, and anything declaring that package (even without the API marker)
will get an implicit dependency on the API package.
3. The API package itself will get a soft dependency on the "owner" package.

@Optional elements can refer to the API packages instead of a concrete mod as well.
2013-10-30 22:20:28 -04:00
Lex Manos a4fa417114 Add new recipe sorter that is called after all mods are initalized. This is disabled by default in 1.6 to not break current worlds as it may change machine's recipy outputs. Will enable by default in 1.7. Players may enable it in the forge config. 2013-10-30 14:08:03 -07:00
LexManos a47cca7e42 Merge pull request #841 from XCompWiz/biomecheck
Adds a Check to prevent Biome Replacement
2013-10-27 22:14:54 -07:00
XCompWiz 80ac3017bd Adds a Check to prevent Biome Replacement
Splits the BiomeGenBase constructor to create one which takes a flag
that indicates whether to insert the biome object into the biomeList
array.  The standard constructor calls the new one with the default of
true.  This allows biome wrapper-objects to exist.
2013-10-28 07:11:17 +02:00
Lex Manos ec517d5f28 Format strings properly in MC's internal logger. Fixes resource pack case warnings. 2013-10-27 11:00:10 -07:00
Christian 899b28bffe Updated FML:
MinecraftForge/FML@dac7f590ea Modify ordering of networkmod registration and mod instantiation. This fixes VersionCheckHandler logging an incorrect failure message due to NPE.
MinecraftForge/FML@f0dc530b28 Fix up documentation of VersionCheckHandler - it only ever accepted a String and only works on the NetworkMod annotated class
MinecraftForge/FML@243a21a353 Wrapping coremods as tweakers. Part 1.
MinecraftForge/FML@58a299aabc Attempt to inject coremods as tweakers, so both can share a dependency ordering
2013-10-27 13:53:05 -04:00
Christian 9efeaa8caa Attempt to inject coremods as tweakers, so both can share a dependency ordering 2013-10-27 13:28:50 -04:00
Christian f7a6bb7eb7 Wrapping coremods as tweakers. Part 1. 2013-10-20 11:53:07 +02:00
Christian cfb78d482a Fix up documentation of VersionCheckHandler - it only ever accepted a String and only works on the NetworkMod annotated class 2013-10-20 11:45:00 +02:00
Christian 09c7df2bb3 Modify ordering of networkmod registration and mod instantiation. This fixes VersionCheckHandler logging an incorrect failure message due
to NPE.
2013-10-20 11:41:28 +02:00
Lex Manos 217d5562ff Fix null pointer exception in BiomeDictionary causing the ChunkManager's config to not load/save. 2013-10-19 18:31:32 -07:00
Lex Manos b0f8d495bb Updated FML: MinecraftForge/FML@bf54d4d667 Make each mod's EventBus log a child of it's main logger. 2013-10-19 18:30:19 -07:00
Lex Manos 0b0b94978c Make each mod's EventBus log a child of it's main logger. 2013-10-19 18:24:24 -07:00
Lex Manos 295542c357 Add wildcard versions of OreDict replacements, Closes #827 2013-10-18 18:58:31 -07:00
Christian 4db6c4cfc4 Updated FML:
MinecraftForge/FML@da4337efbf Fix up handling the new method signature data for NetworkCheckHandlers
2013-10-14 21:30:43 -04:00
Christian fa97bebf34 Fix up handling the new method signature data for NetworkCheckHandlers 2013-10-14 21:28:15 -04:00
Christian efc6b9abbb Merge branch 'master' of github.com:OniBait/MinecraftForge into breakevent 2013-10-13 23:02:20 -04:00
Christian 430d94de95 Updated FML:
MinecraftForge/FML@f92962bbbb Use null to empty, so missing values work. *sigh*
2013-10-13 22:44:15 -04:00
Christian c56f2e3b37 Use null to empty, so missing values work. *sigh* 2013-10-13 22:36:47 -04:00
Christian e0cb56381f And remember to make the event class static *sigh* 2013-10-13 12:23:08 -04:00
Christian f9c283a2e5 Add in an event for zombie summoning. Allows for mods to control summoning behaviour, as well as custom summoned mob. 2013-10-13 12:21:57 -04:00
Christian 6c45b43eee And set the RIGHT variable *sigh* 2013-10-13 11:55:15 -04:00
Christian de69b7dfd0 And allow for tweaking baby chance as well. 2013-10-13 11:53:48 -04:00
Christian 5f5b509c7a Allow configuration of the zombie additional summoning mechanic. The vanilla mechanic is a little borked at times. 2013-10-13 11:39:23 -04:00
Christian 29606e2c39 Updated FML:
MinecraftForge/FML@58577775d2 Very minor style fixes
MinecraftForge/FML@96be82343c Merge pull request #280 from mc10/patch-1
MinecraftForge/FML@2714da1022 Primitive capability for tweakers to order. Add a "TweakOrder" integer property to your manifest, or accept the default of zero.
2013-10-13 11:33:41 -04:00
Lex Manos 412952be5b Prevent session from being printed to the console, also make sure the username is not empty. Causes a lot of bugs further down the line. 2013-10-12 23:10:23 -07:00
Christian 5e03f2e85b Primitive capability for tweakers to order. Add a "TweakOrder" integer
property to your manifest, or accept the default of zero.
2013-10-12 10:28:11 -04:00
OniBait 79e0165362 Cleaned up patches to BlockOre and BlockRedstoneOre
Fixed trailing whitespace (it bugs me too)
2013-10-10 17:15:38 -05:00
OniBait e47a6402e1 Fixed formatting 2013-10-10 12:45:56 -05:00
LexManos efead4d200 Merge pull request #280 from mc10/patch-1
Very minor style fixes
2013-10-09 20:56:05 -07:00
Kevin Ji cfcdb92c8e Very minor style fixes
Replacing tabs with spaces consistently, making brace styles consistent, etc.
2013-10-09 19:53:50 -07:00
Christian 465525119c Updated FML:
MinecraftForge/FML@fc3e7647d2 Support, and fix up, interface lists for Optional
2013-10-09 21:00:07 -04:00
Christian daf454af62 Support, and fix up, interface lists for Optional 2013-10-09 13:58:14 -04:00
Lex Manos 43a16d5389 Added some missing air checks to world gen features. 2013-10-09 02:47:05 -07:00
OniBait 303288e8b1 Merge branch 'upstream/master' 2013-10-08 19:04:54 -05:00
OniBait eb5940664c Add block break events based on @bloodmc's initial 1.5.2 Pull Request 2013-10-08 19:00:02 -05:00
Lex Manos 1a6743331b Fix repeated argument in CleintCommands. 2013-10-07 14:16:04 -07:00
Lex Manos c8df5b832e MinecraftForge/FML@a381874bb9 Delay sound system backend initalization to speed up startup and prevent race condition on some computers. 2013-10-06 11:23:36 -07:00
Lex Manos 1754a5820a Delay sound system backend initalization to speed up startup and prevent race condition on some computers. 2013-10-06 11:13:07 -07:00
LexManos fc1089713f Merge pull request #792 from Eurymachus/opencontainer
Added PlayerOpenContainerEvent and added ForgeHooks.canInteractWith
2013-10-06 09:12:25 -07:00
Christian 0866d88126 Updated FML:
MinecraftForge/FML@bc64ceabef Optional shouldn't be constructable itself. It's purely a wrapper thing.
MinecraftForge/FML@55525f6d2e ModLoader is officially deprecated. It will all cease to be with 1.7.
2013-10-06 11:17:58 -04:00
Christian b542f13c5c ModLoader is officially deprecated. It will all cease to be with 1.7. 2013-10-06 11:06:31 -04:00
Christian 955d532264 Optional shouldn't be constructable itself. It's purely a wrapper thing. 2013-10-06 10:56:47 -04:00
Eurymachus 8d0b58ee6f Added PlayerOpenContainerEvent and added ForgeHooks.canInteractWith
- Used to override the canInteractWith during player tick
- setResult to ALLOW/DENY as required
- Defaults to Vanilla behaviour in any other instance.

Required for LittleBlocks Mod and to Assist Gullivers Mod
2013-10-06 03:58:13 +01:00
Christian fa41058ba1 Updated FML:
MinecraftForge/FML@63ba3aa009 Add in support for Optional interfaces and methods. Be gone coremods!
2013-10-04 17:21:14 -04:00
Christian 19173a7b97 Add in support for Optional interfaces and methods. Be gone coremods! 2013-10-04 17:20:05 -04:00
OniBait 296a484f4b Add block break events based on @bloodmc's initial 1.5.2 Pull Request 2013-10-04 00:15:19 -05:00
Lex Manos 7d5d191fc2 Fix missing patch which caused per-world storage to not be saved. 2013-10-01 09:59:13 -07:00
LexManos d55ddfcebc Merge pull request #808 from rhilenova/player_list
Added pre/post to player list rendering in GuiIngameForge.
2013-09-30 22:52:59 -07:00
rhilenova 7147cdb1c1 Merging in master. 2013-09-30 20:30:08 -04:00
Lex Manos cba1de122a Bump version number for todays changes. 2013-09-30 17:17:35 -07:00
Lex Manos 68669e2679 Make isItemStackDamageable() pass the stack to getMaxDamage() to use the Forge version of getMaxDamage().
Fixes display issues with mods using getMaxDamage(ItemStack) instead of the vanilla one. Closes #805
2013-09-30 17:15:18 -07:00
LexManos 4374f67759 Merge pull request #803 from benblank/block-power
Allow blocks to choose how they handle indirect power
2013-09-30 17:12:34 -07:00
rhilenova 5e998776cb Moved PLAYER_LIST event inside display check. 2013-09-30 20:06:04 -04:00
LexManos b09e72a2fc Merge pull request #793 from jrtc27/install-args
Pass arguments to install.sh and install.cmd to install.py
2013-09-30 16:59:51 -07:00
Lex Manos 2e3d1a3c09 Add cancelable EntityStructByLightningEvent, Closes #789 2013-09-30 16:56:34 -07:00
Lex Manos 96b4fd1da1 Stack sensitive version of Item.getItemStackLimit. Closes #771 2013-09-30 16:21:40 -07:00
LexManos d3c80c326a Merge pull request #772 from Lomeli12/master
Villager Trading GUI will now not open if Player is sneaking. Allowing for bypassing of the GUI.
2013-09-30 16:01:51 -07:00
Lex Manos b74d977225 Added all the vanilla records to the ore dictionary. Closes #731 2013-09-30 14:58:03 -07:00
Lex Manos 73202259fa Direct canApplyAtEnchantingTable through canApply Closes #740 2013-09-30 14:51:39 -07:00
Lex Manos 01cf29a202 Add pre and post event to rendering Chat, allowing for placement of the chat box. Closes #733 2013-09-30 14:32:12 -07:00
Lex Manos 71ececdbb4 Set densityDir in BlockFluidBase's constructor, closes #737 2013-09-30 14:02:23 -07:00
Lex Manos 81efd38fee Fix placement of snow cover over metadata 6. Closes #724 2013-09-30 13:52:17 -07:00
Lex Manos b3c715c312 Add the ability to register chat commands that only execute on the client. Works with autocomplete.
Client commands are gray when shown in the autocomplete list (when you press tab)
Closes #640
2013-09-30 13:08:57 -07:00
Ben Blank 8c54873afd move shouldCheckWeakPower to Forge section 2013-09-30 11:54:03 -07:00
Lex Manos 50b9abc13f Vanilla hopper should obey the IInventory contract, TileEntityHopper now takes into account IInventory.getInventoryStackLimit() when inserting items Closes #597. 2013-09-30 11:37:37 -07:00
Lex Manos ca351b527d Update workspace to point at launchwrapper 1.8 2013-09-30 11:36:28 -07:00
LexManos e4714bc4c5 Merge pull request #796 from HoBoS-TaCo/master
Added ItemTooltipEvent
2013-09-29 19:55:14 -07:00
HoBoS_TaCo 06e2f914c1 Added ItemTooltipEvent
This event is fired at the end of ItemStack.getTooltip(EntityPlayer, boolean), which in turn is called from it's respective GUIContainer. It allows an itemstack's tooltip to be changed depending on the player, itemstack or whether the advanced information on item tooltips is being shown, toggled by F3+H.
2013-09-30 12:41:52 +10:00
Christian 3805eddd34 Updated FML:
MinecraftForge/FML@5265e34a35 Fix null killing the server
2013-09-29 16:15:03 -04:00
Christian ea25a3ffd0 Fix null killing the server 2013-09-29 15:51:38 -04:00
rhilenova e842fd95b4 Added pre/post to player list rendering in GuiIngameForge. 2013-09-29 11:43:29 -04:00
Lex Manos 5f752fc967 MinecraftForge/FML@35ab9f52b0 Fix md5s for new checksums.sha1 in scala libraries. 2013-09-28 19:48:50 -07:00
Lex Manos 7e53a294fe Fix md5s for new checksums.sha1 in scala libraries. 2013-09-28 19:47:32 -07:00
Ben Blank f40bdeca97 allow blocks to choose how they handle indirect power 2013-09-28 17:56:19 -07:00
Christian 24017d6810 Updated FML:
MinecraftForge/FML@e356f4d713 Cross-modsystem compatibility fix with thanks to Mumfrey @ liteloader
MinecraftForge/FML@9b55f1f48f Attempt at a shared modlist implementation - should allow visibility between liteloader and fml for "mod list display"
2013-09-27 10:49:28 -04:00
Christian 05c66728e7 Attempt at a shared modlist implementation - should allow visibility between liteloader and fml for "mod list display" 2013-09-27 10:45:20 -04:00
Christian dc72bfe56a Cross-modsystem compatibility fix with thanks to Mumfrey @ liteloader 2013-09-27 10:01:39 -04:00
Christian 5a24b2d73c Updated FML:
MinecraftForge/FML@bfc25bc5da Add to both the classloader and the parent
2013-09-26 13:01:44 -04:00
Christian ef70a1d29e Add to both the classloader and the parent 2013-09-26 13:01:00 -04:00
Christian 4c38edf532 Updated FML:
MinecraftForge/FML@9f0f9e7288 Fix deobf tweaker
2013-09-26 10:11:46 -04:00
Christian 9bcf633e8c Fix deobf tweaker 2013-09-26 10:11:29 -04:00
Christian af24dc6096 Updated FML:
MinecraftForge/FML@ce6404fd5b TYPOS!!!
2013-09-26 09:34:05 -04:00
Christian 036cda37b0 TYPOS!!! 2013-09-26 09:33:48 -04:00
Christian 865e4e2b45 Updated FML:
MinecraftForge/FML@8f18a3de9a Separate deobf tweaker so it runs last. Should fix problems with cascaded tweakers expecting an obf environment.
2013-09-26 09:24:04 -04:00
Christian cbf22b0ab5 Separate deobf tweaker so it runs last. Should fix problems with cascaded tweakers
expecting an obf environment.
2013-09-26 09:23:25 -04:00
Christian 41617a0227 Updated FML:
MinecraftForge/FML@8e26c99de3 Add debugging for deobfuscation
MinecraftForge/FML@1d902df581 Use the negative cache in latest legacylauncher.
MinecraftForge/FML@9815d8c379 Update for launchwrapper 1.8
2013-09-26 07:59:15 -04:00
Lex Manos ab2d8fa01b Add wrapper exception to the new Structure ID system to point to the correct Structure. 2013-09-25 16:58:36 -07:00
Christian 952d602f49 Update for launchwrapper 1.8 2013-09-25 16:40:59 -04:00
Christian 61ae96f03a Use the negative cache in latest legacylauncher. 2013-09-25 11:46:11 -04:00
Christian 96d9c3b8bc Add debugging for deobfuscation
Add negative caching for field and method maps. Should shortcut some work

Fix handling the case where a class doesn't exist, but still needs deobf

Ask the patch manager for the bytes for the class, not the classLoader

Fix up some more places where we should look for a patched class

Fix problem with empty source classes and runtime deobfuscation
2013-09-25 07:37:25 -04:00
Lex Manos 80dfdbf749 Updated FML:
MinecraftForge/FML@fc8c3bef03 Update to new installer that uses xz compression and better support for non-standard jvms
2013-09-24 23:22:27 -07:00
Lex Manos c1623cb8e3 Update to new installer that uses xz compression and better support for non-standard jvms 2013-09-24 23:21:17 -07:00
Lex Manos dbd19b0cad Fixed typo in bounding box based ladder checks that caused potential infinite loops with entities in certian positions. Thanks Overmind for reporting it. 2013-09-24 22:46:18 -07:00
Lex Manos 70671858c2 Remove some side onlys on BiomeEvents that don't need them. 2013-09-24 21:43:56 -07:00
Lex Manos 0c064485b1 Update dev workspace for 1.6.4 .. 2013-09-24 21:43:25 -07:00
Christian 0d090070a9 Updated FML:
MinecraftForge/FML@a4de22c1ad And use the parent that's actually going to be valid. *sigh*
2013-09-24 08:42:37 -04:00
Christian 8f17d1c694 And use the parent that's actually going to be valid. *sigh* 2013-09-24 08:42:13 -04:00
Christian 9029d380a3 Updated FML:
MinecraftForge/FML@70cffe6982 Herpaderp. Make addURL accessible. *sigh*
2013-09-24 07:34:44 -04:00
Christian 8929267b20 Herpaderp. Make addURL accessible. *sigh* 2013-09-24 07:33:11 -04:00
CovertJaguar 71c14b815e Fluid Rarity should have a default
Oops.
2013-09-23 22:54:46 -07:00
Christian 64d7c4eaa5 Updated FML:
MinecraftForge/FML@4a94c2c71b Fix NPE when loading second single-player world
MinecraftForge/FML@0e80fcb8f7 Merge pull request #284 from smcv/uninit
MinecraftForge/FML@39620f1e41 Fix injection of tweaker into system
2013-09-23 13:34:22 -04:00
Christian 48c92084da Fix injection of tweaker into system 2013-09-23 13:33:16 -04:00
cpw cc3f0b0eea Merge pull request #284 from smcv/uninit
Fix NPE when loading second single-player world
2013-09-22 18:24:56 -07:00
Simon McVittie 5bf7d3cb4b Fix NPE when loading second single-player world
After leaving a single-player world, getServer() can return null, resulting
in the stack trace below, "Fatal errors were detected during the
transition from SERVER_STOPPING to SERVER_ABOUT_TO_START",
"The ForgeModLoader state engine has become corrupted" and the client
getting stuck forever.

Exception in thread "Server thread" java.lang.NullPointerException
at cpw.mods.fml.client.FMLClientHandler.serverStopped(FMLClientHandler.java:620)
at cpw.mods.fml.common.FMLCommonHandler.handleServerStopped(FMLCommonHandler.java:468)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:471)
at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:583)
2013-09-22 16:56:24 +01:00
Christian 62079e3549 Updated FML:
MinecraftForge/FML@79c39f8b7c Fix classpath for launchwrapper 1.7
2013-09-21 16:16:10 -04:00
Christian 85811a013d Fix classpath for launchwrapper 1.7 2013-09-21 16:15:05 -04:00
cpw a632ec6ce6 Merge pull request #794 from alexbegt/master
Correcting SoundManager Transformer
2013-09-21 12:39:00 -07:00
Alexander Behrhof be8bccc72e Correcting SoundManager Transformer 2013-09-21 14:30:22 -04:00
Christian a7fde237bb Clean patch fuzz 2013-09-20 21:17:38 -04:00
James Clarke f68bdb0493 Pass arguments to install.sh and install.cmd to install.py 2013-09-21 01:43:22 +01:00
Christian e03a4db2b9 Updated FML:
MinecraftForge/FML@f6190e8752 Update workspaces for 1.6.4
2013-09-20 17:23:39 -04:00
Christian 0c365eb893 Update workspaces for 1.6.4 2013-09-20 17:23:18 -04:00
Christian 54594ee1de Updated FML:
MinecraftForge/FML@25981706ef Update for MC 1.6.4
MinecraftForge/FML@0950b9fc84 Fix up a deep crash in the early server init hanging the client
2013-09-20 17:17:53 -04:00
Christian da0972980b Fix up a deep crash in the early server init hanging the client 2013-09-20 17:12:01 -04:00
Christian 74b7cba492 Update for MC 1.6.4 2013-09-20 16:25:12 -04:00
Lex Manos 98aecd7f6b Move have handler creation up, to prevent NPE. 2013-09-19 16:47:46 -07:00
Lex Manos f58df75bea Remove duplicate access transformer 2013-09-19 16:46:30 -07:00
Lex Manos 43a6d0da62 Updated FML:
MinecraftForge/FML@e7dd728f95 Format the log messages through MessageFormat. Thanks CovertJaguar for the pointer.
MinecraftForge/FML@82d896a35e Make final transformers actually work on methods as well.
2013-09-19 13:05:15 -07:00
Lex Manos 1928c177ac Make final transformers actually work on methods as well. 2013-09-19 12:59:12 -07:00
Christian d2712dafdb Format the log messages through MessageFormat. Thanks CovertJaguar for the pointer. Closes #282 2013-09-19 08:23:56 -04:00
Lex Manos a525cab5ff Move the Structure data save files to per-world data folders. Vanilla saves them to the global folder which will potentially cause conflicts if two worlds generate 'Villages'. Which in the modded world is highly likely. Refer back to the long standing vanilla issue where nether 'villages' would override the overworlds villages, it's the same situation. 2013-09-18 23:37:23 -07:00
Lex Manos d39c279203 Make MapGenStructureIO name registration functions public, Any mod that has anything extending StructureStart or StructureComponent must register there classes and create a default (no parameter) constructor. 2013-09-18 20:52:52 -07:00
Lex Manos 0a7095afa9 Unfinalized Item.getIconIndex(ItemStack) 2013-09-18 19:33:28 -07:00
Lex Manos 36672fef83 Actually push the submodule update -.- 2013-09-18 16:18:19 -07:00
Lex Manos 57ea20d083 Bump version for new MC version. 2013-09-18 16:10:55 -07:00
Lex Manos 6c5ef9347c Updated FML:
MinecraftForge/FML@da70cdd35a Update tweaker for new Launcher API
MinecraftForge/FML@352117fd78 Update for new installer and thank you.
MinecraftForge/FML@40a34af431 Merge branch 'master' into newtweak
MinecraftForge/FML@e77d2547ad Update for pre-ninja 1.6.3 update
MinecraftForge/FML@34493b0d99 Update for real 1.6.3 update
MinecraftForge/FML@95afc95b24 Update mcp mod info
MinecraftForge/FML@ff75416a32 Update mc_versions data and commands patch and eclipse workspace
MinecraftForge/FML@8f2e675581 Update the src distro's eclipse workspace.
2013-09-18 16:10:38 -07:00
Lex Manos fcf2af484d Update the src distro's eclipse workspace. 2013-09-18 15:21:56 -07:00
Christian b721a51bc4 Update mc_versions data and commands patch and eclipse workspace 2013-09-18 18:01:04 -04:00
Christian 3768ca1713 Update mcp mod info 2013-09-18 17:02:41 -04:00
Christian 2ea5f04228 Update for real 1.6.3 update 2013-09-18 16:59:28 -04:00
Christian 12c556bc36 Update for pre-ninja 1.6.3 update 2013-09-18 16:33:11 -04:00
Christian 88f1dce658 Merge branch 'master' into newtweak 2013-09-18 14:49:53 -04:00
Christian 56bf94b441 Update for new installer and thank you. 2013-09-17 21:56:25 -04:00
Christian 60da9094ef Updated FML:
MinecraftForge/FML@81328b6684 Add in support for using a mirror list and provide checksums for packed download of libs
2013-09-15 23:00:07 -04:00
Christian 466902654e Add in support for using a mirror list and provide checksums for packed download of libs 2013-09-15 22:58:39 -04:00
Christian f9087cb291 Revert "Added a RenderType that allows Map-style rendering w/o inheriting from"
This reverts commit eb4688bf5e.

Conflicts:
	patches/minecraft/net/minecraft/client/renderer/ItemRenderer.java.patch
2013-09-14 18:43:18 -04:00
Christian 635f13f825 Fix broken PR from vilml. TEST! 2013-09-14 18:13:58 -04:00
cpw 55830256d3 Merge pull request #784 from viliml/patch-1
Prevent NPE in fluid lookup for block
2013-09-14 11:28:06 -07:00
viliml ac58bb2f5a Prevent NPE in fluid lookup for block 2013-09-14 20:16:46 +02:00
cpw a066018c9f Merge pull request #782 from CovertJaguar/patch-1
Allow Fluids to have Rarities
2013-09-14 05:17:34 -07:00
Christian 0bc9138aa4 Fix the divider 2013-09-13 22:57:29 -05:00
CovertJaguar b626c888b0 Allow Fluids to have Rarities
Used for tool tips.
2013-09-13 20:17:12 -07:00
Christian 492cbc3628 Move stuff around a bit- also tie range and enabled to options. 2013-09-13 22:11:59 -05:00
Christian 32353f0db1 Merge branch 'master' of github.com:Adubbz/MinecraftForge into Adubbz-master 2013-09-13 21:04:54 -05:00
Adubbz 7aa43a4217 Sky colours now smoothly transition
Made transitions even smoother

Sky colours now smoothly transition
2013-09-14 12:00:06 +10:00
Christian 09580515a0 Tweak patch comment 2013-09-13 20:45:30 -05:00
Christian 65165cd41c Merge branch 'mapStyle' of github.com:Matchlighter/MinecraftForge into Matchlighter-mapStyle 2013-09-13 20:11:13 -05:00
Christian 391668114d Merge branch 'master' of github.com:micdoodle8/MinecraftForge into micdoodle8-master 2013-09-13 20:06:50 -05:00
iChun ae80a7b322 Allows proper raytracing from actual player eye position rather than hardcoded eye heights. 2013-09-13 19:56:28 -05:00
Christian 9093263d8c Merge branch 'fovhook' of github.com:MachineMuse/MinecraftForge into MachineMuse-fovhook 2013-09-13 19:40:19 -05:00
Christian e008ae3ef1 Updated FML:
MinecraftForge/FML@b5af446d71 Fix sidedness derp in LanguageRegistry.
2013-09-13 19:05:28 -05:00
Christian 4fc4accb6e Fix sidedness derp in LanguageRegistry. 2013-09-13 19:04:25 -05:00
Lomeli12 c0164f29cd Villager Trading GUI will not open if Player is sneaking. 2013-09-10 14:08:29 -07:00
micdoodle8 9ddb57297f Check if block is air instead of just ID zero when growing from stem block. 2013-09-09 17:53:19 -04:00
Matchlighter eb4688bf5e Added a RenderType that allows Map-style rendering w/o inheriting from
ItemMap.
2013-09-07 22:50:18 -06:00
Christian 519da32391 The partial tick should be available for all render player events. Weird it wasn't. 2013-09-07 16:25:30 -04:00
Christian f9728e8f3f Redo harvest event. This time with simpler logic, that should be less liable to weird "missing" stuff. 2013-09-07 00:10:08 -04:00
Christian 25bfc1407b Reverting HarvestEvent, for new implementation 2013-09-06 23:39:48 -04:00
Lex Manos 303bd03533 Fix bug where guis were not closed properly, resulting in signs not having there text set. 2013-09-06 15:27:02 -07:00
Christian 6b54b52ec4 Change trigger calculation so entities get some time to age before refiring the event. 2013-09-06 16:46:44 -04:00
Lex Manos 89becaca02 Create helper apply_patches script and add paramter to change patch output folder. 2013-09-06 13:32:26 -07:00
Christian d9ca67e162 Change from Cancelable to using a Result. This means you can force despawn mobs you
don't want around anymore. Also, deferred check to once every 20 ticks. May tune it
down further or make it a config if this event is a lag issue.
2013-09-06 16:05:29 -04:00
Daniel García ff655de27e Create es_ES.lang 2013-09-06 13:28:48 -04:00
MachineMuse ee0cb12810 Added fov hook
Small formatting changes (opening braces on new line)
2013-09-06 13:25:47 -04:00
Christian 6da6e9da07 Add a cancellable despawn event- allows mods to decide to prevent the despawning
of certain otherwise normally despawnable mobs.
2013-09-06 13:19:51 -04:00
MachineMuse ad41dfaeaf Small formatting changes (opening braces on new line) 2013-09-05 18:46:05 -06:00
MachineMuse 7a0a7bf8e0 fixed merge 2013-09-05 18:43:27 -06:00
MachineMuse 65551ce233 Added fov hook 2013-09-05 18:39:27 -06:00
Christian c63efa917d Add some javadoc to the HarvestBlock event. 2013-09-05 16:24:50 -04:00
Christian 7544055fa4 Clean up some formatting. 2013-09-05 13:16:01 -04:00
Christian cb5b5cde1f Use the dropchance from the event. 2013-09-05 13:01:25 -04:00
Christian a58a7fd365 Merge branch 'sometweaks' 2013-09-05 12:22:31 -04:00
Christian 99c6662f9d Add in a block reverse lookup for fluids. Closes #749 2013-09-05 12:08:16 -04:00
Christian ca0e32cfd2 Add a harvestblock event, to allow mods to intercept and change the drops for blocks. Don't abuse this, or we'll have to take safety measures.
Fires for both silktouch and non-silktouch harvesting, and provides the player. Note, you may need to
change your break overrides to pass on the player for best results.
2013-09-05 11:57:27 -04:00
Christian c84d99aa22 Defer firing CreateDecorator until it's likely mods have had a chance to register their listener. Should close #759 2013-09-05 10:08:02 -04:00
Christian 0443ef5a9e MachineMuse, remember, there's TWO model formats supported! 2013-09-05 09:14:10 -04:00
Christian e962c2a94d Merge branch 'master' of github.com:jk-5/MinecraftForge into sometweaks
Conflicts:
	patches/minecraft/net/minecraft/client/Minecraft.java.patch
2013-09-05 08:39:15 -04:00
Christian 8c2e171a16 Merge branch 'master' of github.com:mhahn1976/MinecraftForge into sometweaks 2013-09-05 08:26:11 -04:00
Christian 4fb8eb96d0 Merge branch 'french' of github.com:robin4002/MinecraftForge into sometweaks 2013-09-05 08:23:29 -04:00
Christian 7549eb90a7 Add a bit of javadoc 2013-09-05 08:22:28 -04:00
Christian df132a0296 Merge branch 'displayname' of github.com:MachineMuse/MinecraftForge into sometweaks
Conflicts:
	patches/minecraft/net/minecraft/entity/player/EntityPlayer.java.patch
2013-09-05 08:20:49 -04:00
Christian e499a6d375 Merge branch 'objTessellation' of github.com:MachineMuse/MinecraftForge into sometweaks 2013-09-05 07:58:56 -04:00
Christian fe5f5e690e Fix patch for new MCP naming. 2013-09-05 07:57:21 -04:00
Christian 21cd975ae3 Merge branch 'mouseevent2' of github.com:MachineMuse/MinecraftForge into sometweaks 2013-09-05 07:47:52 -04:00
Christian 32073a5bc1 Reduce patch size significantly 2013-09-05 07:45:29 -04:00
iChun 6cf8408752 Fix player push out of blocks clientside being hardcoded and not based on entity size.
Added player eyeHeight field to allow changeable eye heights of players rather than being hardcoded per player class as well as add a getDefaultEyeHeight function.
2013-09-05 14:57:34 +08:00
MachineMuse 7a77b61ddd fixed logic error 2013-09-04 15:27:45 -06:00
MachineMuse ad09526bee inserted hook into Minecraft.java 2013-09-04 15:05:29 -06:00
MachineMuse e3e3ea54f9 Added mouse event 2013-09-04 15:01:37 -06:00
MachineMuse cb9c26d49c Memoization of display name result 2013-09-04 14:22:22 -06:00
Christian cf88896ad7 Update version to 9.10.1 for mcp naming changes. 2013-09-03 18:09:07 -04:00
Christian 0d44234239 Update forge for MCP naming updates
Updated FML:
MinecraftForge/FML@d0c6e92900 Update MCP data
2013-09-03 18:04:12 -04:00
Christian 9387bae26b Update MCP data 2013-09-03 17:56:09 -04:00
MachineMuse 96c045137d Merge remote-tracking branch 'forge/master' into objTessellation 2013-09-03 15:45:45 -06:00
MachineMuse 0e3037e85d Added display name hook 2013-09-03 14:55:11 -06:00
Christian 5c334d7627 Fix possible NPE in searching code. 2013-09-02 15:44:27 -04:00
Christian 7246914605 Updated FML:
MinecraftForge/FML@2a9c485edc Remove @SideOnly from 70318 (getDistance) it makes no sense that it's not on the server.
2013-09-02 12:24:57 -04:00
Christian b41a7e1dab Remove @SideOnly from 70318 (getDistance) it makes no sense that it's not on the server. 2013-09-02 12:24:17 -04:00
Christian d9b72a2282 Updated FML:
MinecraftForge/FML@a13598b17e Use java 1.6 compatible method of closing the zip file. Stops stupid compile error.
2013-09-02 00:13:23 -04:00
Christian b9ac2ac13c Use java 1.6 compatible method of closing the zip file. Stops stupid compile error. 2013-09-02 00:12:36 -04:00
Christian 4eb05ed571 Small fix to container registry. emptyContainer is not null, it's "NULL_EMPTYCONTAINER" now and won't match any valid container. 2013-08-28 22:16:59 -04:00
Christian 5a8def7d00 Tweak the release to add in assets to the distributable. *sigh* 2013-08-28 07:59:45 -04:00
robin 90be31ddc8 create french localization 2013-08-28 13:14:30 +02:00
Christian dddb9b3189 Add some starting work for a forge tps command. Also update coremod for new FML behaviour 2013-08-27 23:07:30 -04:00
Christian 0c06d3b47a Updated FML:
MinecraftForge/FML@1c9a853868 Allow coremods to properly inject asset readers.
MinecraftForge/FML@40b54013b4 Allow server side lang file injection, hopefully
2013-08-27 23:04:48 -04:00
Christian 4f9b778d14 Allow server side lang file injection, hopefully 2013-08-27 22:45:10 -04:00
Christian 5925fa7c79 Allow coremods to properly inject asset readers. 2013-08-27 12:31:37 -04:00
Michael Hahn cc96840aa8 capacity was not respected
Updated to properly calculate the amount of free space in the tank
before checking that against the amount of the resource.
2013-08-26 12:21:31 -05:00
jk-5 f78eba09fd Added GuiOpenEvent
You can use this for a clean way to override guis, without needing an
TickHandler to check if the gui you want to override is open and show
your own gui

Proper close check
2013-08-24 09:32:34 +02:00
Christian ded1a92dfd Update tweaker for new Launcher API 2013-08-23 10:42:26 -04:00
Christian b2c1eae652 Updated FML:
MinecraftForge/FML@b993cf4a98 More exception handling for less derpiness.
2013-08-20 21:01:02 -04:00
Christian 3b4f1983ce More exception handling for less derpiness. 2013-08-20 20:46:18 -04:00
Christian 8fed427251 In the time honoured tradition of trying to fix vanilla, we today attempt to patch the pathfinding AI so that it doesn't lag when
there's a lot of entities. Basically, if the zombie can't reach the villager, backoff subsequent pathfinding attempts. Hopefully
should really help with lag caused by zombie swarms.
2013-08-20 11:55:57 -04:00
Christian b2d309b17e Allow multipass RenderItem rendering for terrain icons too. Should fix sengir's saplings. 2013-08-19 16:32:47 -04:00
Christian 8d6f893083 Updated FML:
MinecraftForge/FML@913f6f6d36 Try and use the relaunch log, which should be classloaded..
MinecraftForge/FML@ac065ff5f7 Reset the IWorldGenerator seed for each mod, before calling. That should mean worldgen is consistent and not dependent on mod ordering, or mod sideeffects.
2013-08-19 15:28:50 -04:00
Christian 94462565a5 Reset the IWorldGenerator seed for each mod, before calling. That should mean worldgen is consistent
and not dependent on mod ordering, or mod sideeffects.
2013-08-19 14:56:01 -04:00
Christian 6818c0f4da Try and use the relaunch log, which should be classloaded.. 2013-08-19 14:55:37 -04:00
LexManos faba7e2a07 Skipp toss event for null entity items. Closes #732 2013-08-19 10:45:57 -07:00
LexManos baf1e771e9 Cache world on all render passes in case some mod disables the first pass. 2013-08-19 10:45:29 -07:00
LexManos 461a30812b Fix bug with custom Fluids. You can now drown in them! 2013-08-18 23:16:36 -07:00
Christian 4b64c15ae8 Updated FML:
MinecraftForge/FML@9468e41bbf Fix up scala refs, for better results
2013-08-18 19:02:20 -04:00
Christian 4eb97daac3 Fix up scala refs, for better results 2013-08-18 18:58:36 -04:00
cpw 3625a409a5 Merge pull request #730 from Soaryn/patch-1
Adds Temperature to Lava
2013-08-17 11:17:34 -07:00
Christian 8533f974e8 Updated FML:
MinecraftForge/FML@ffdd056a18 Check keys, not values *sigh*
2013-08-17 13:28:06 -04:00
Christian ed258920a0 Check keys, not values *sigh* 2013-08-17 13:27:43 -04:00
Christian 667db45b1d Updated FML:
MinecraftForge/FML@f157e7a6ec And more coremod logging
2013-08-17 13:15:18 -04:00
Christian 877dc77b75 And more coremod logging 2013-08-17 13:14:55 -04:00
Christian bafbac3d51 Updated FML:
MinecraftForge/FML@4a9d0f9bd5 Add in some log information
2013-08-17 13:10:43 -04:00
Christian dcba47209f Add in some log information 2013-08-17 13:10:28 -04:00
Christian 92c095412d Updated FML:
MinecraftForge/FML@0398916666 And actually instantiate the collection *sigh*
2013-08-17 12:57:37 -04:00
Christian 904e2df1f9 And actually instantiate the collection *sigh* 2013-08-17 12:57:15 -04:00
Christian ea31a51285 Updated FML:
MinecraftForge/FML@dec9a3924d Add in "FMLCorePluginContainsMod" in the manifest. If this value is present, FML will attempt to parse your mod jar file as a normal mod file as well, instantiating mod containers there.
2013-08-17 12:49:37 -04:00
Christian 643e3d441a Add in "FMLCorePluginContainsMod" in the manifest. If this value is
present, FML will attempt to parse your mod jar file as a normal mod
file as well, instantiating mod containers there.
2013-08-17 12:48:38 -04:00
Christian 8f66346aeb Updated FML:
MinecraftForge/FML@2470120680 Clean up a couple of resources. Also, don't parse jars just because they're in the mods dir
2013-08-17 11:44:06 -04:00
Christian 8f9b54a97a Clean up a couple of resources. Also, don't parse jars just because
they're in the mods dir
2013-08-17 11:40:15 -04:00
Christian 9741d6348f Updated FML:
MinecraftForge/FML@9a5e24e338 Fix stupid derp is stupid. Closes #275 and means sp614x can do his thing
MinecraftForge/FML@ba90b61607 Make sure we only add args to the argument list if a tweaker hasn't already. Should fix LiteLoader compatibility issue.
2013-08-17 11:13:02 -04:00
Christian 7c7cafbae1 Make sure we only add args to the argument list if a tweaker hasn't already.
Should fix LiteLoader compatibility issue.
2013-08-16 16:28:55 -04:00
Christian 779139b3ca Fix stupid derp is stupid. Closes #275 and means sp614x can do his thing 2013-08-16 16:18:50 -04:00
Soaryn 8c762223a4 Adds Temperature to Lava
Missing lava temperature. Feel free to change it to any value. 
1300K is the typical max for Magma so wasn't sure what was desired. Regardless, better than the same temp as water at 295K 😄
2013-08-15 19:55:15 -04:00
LexManos ffd2fbcc84 Fix NPE in enchangint books. 2013-08-13 15:25:09 -07:00
LexManos b0f4497bbe Fix inverted case, search works now. 2013-08-11 16:01:27 -07:00
LexManos 97f6138cf8 Merge pull request #606 from Shukaro/master
Add stone and cobblestone to ore dictionary
2013-08-10 23:29:01 -07:00
LexManos f65f042910 Addition: Added isAllowedOnBooks hook to Enchantments Closes #589 2013-08-10 23:23:41 -07:00
LexManos 7ad79b42bc Deprecate Block.addCreativeItems, Kill in 1.6.3+ Closes #655 2013-08-10 23:07:49 -07:00
LexManos 4f172ae9a5 Merge pull request #679 from Chicken-Bones/invchanged
Add onNeighborTileChange callback to block by generalizing func_96440_m ...
2013-08-10 22:53:43 -07:00
LexManos 5fadba7ddc Merge pull request #702 from MrMasochism/master
Added new function for control over dismount underwater
2013-08-10 22:07:02 -07:00
LexManos ffd4d4afc3 Allow creative tabs to have a search box if they want to Closes #592 2013-08-10 22:04:58 -07:00
LexManos d304f40295 Merge pull request #717 from tommy1019/patch-3
Fixed Fluid Non-Solid Block Duplication
2013-08-10 19:47:21 -07:00
LexManos ffd4b38801 Add optional feature to check entire bounding box for ladders. Closes #709 2013-08-10 19:39:06 -07:00
tommy1019 efb27ed1ea Fixed Classic Checking 2013-08-09 12:25:56 -05:00
tommy1019 aab3385c2d Fixed Double Item Drop 2013-08-09 12:23:05 -05:00
tommy1019 9e732ee935 Fixed Fluid Non-Solid Block Duplication 2013-08-08 18:38:46 -05:00
LexManos 571e441502 Only refresh vanilla tile entities when IDs change. 2013-08-07 18:24:50 -07:00
LexManos 18c8ac0b31 Updated FML:
MinecraftForge/FML@f275a24b43 Add in some reverse lookup methods for game registry data
MinecraftForge/FML@cb05c8c4aa Add missing SideOnly in BaseMod
MinecraftForge/FML@1857064afa Merge pull request #266 from grompe/patch-1
MinecraftForge/FML@182aa9c0cb Fixed install.sh not passing arguments to install.py
MinecraftForge/FML@f46a538b41 Merge pull request #268 from Bo98/sh-args-fix
MinecraftForge/FML@29ef3d5ab4 Update installer.
2013-08-06 11:49:39 -07:00
LexManos 4406d1e171 Update installer. 2013-08-06 11:42:38 -07:00
Christian 7d700916d9 Merge branch 'miscchanges' 2013-08-04 22:27:55 -04:00
LexManos b0f5f88482 Merge pull request #610 from purpleposeidon/patch-1
Add an InputStream constructor to WavefrontObject
2013-08-04 16:56:26 -07:00
LexManos c6030b9125 Merge pull request #704 from StormTiberius/master
Adds cloud height to WorldType
2013-08-04 16:54:44 -07:00
LexManos 3787e5d701 Merge pull request #268 from Bo98/sh-args-fix
Fixed install.sh not passing arguments to install.py
2013-08-04 15:32:06 -07:00
cpw 81e4ae2af9 Merge pull request #706 from heldplayer/fluidRendering
Fix small derp
2013-08-03 17:29:04 -07:00
cpw 543535e1a0 Merge pull request #705 from heldplayer/fluids
Fix render colour on bottom of fluids
2013-08-03 17:28:53 -07:00
Heldplayer 647f6fdf34 Fix small derp 2013-08-03 23:42:38 +02:00
Heldplayer 90e0eaf5f5 Fix render colour on bottom of fluids 2013-08-03 23:20:34 +02:00
Bo ea33f502fc Fixed install.sh not passing arguments to install.py 2013-08-03 17:43:57 +01:00
StormTiberius 4ea7e8d828 Add cloud height to WorldType 2013-08-03 05:45:22 +03:00
cpw 1a9a16495a Merge pull request #266 from grompe/patch-1
Add missing SideOnly in BaseMod
2013-08-01 04:21:22 -07:00
Christian cf4f1377d4 Merge branch 'master' of github.com:EnderShadow/MinecraftForge into miscchanges 2013-08-01 07:20:30 -04:00
Grom PE 971dc1eb00 Add missing SideOnly in BaseMod
NetClientHandler exists only on client side and thus method using it should be annotated with SideOnly.
2013-08-01 14:19:30 +07:00
Matthew Warren bf8f5aa306 added temperature to fluids
it could be useful for blocks that are affected by temperature
2013-07-31 22:15:42 -05:00
MrMasochism 9564575d77 Added a new function to allow control over whether an entity is dismounted when the entity it is riding goes under water 2013-08-01 08:02:19 +12:00
cpw 9776e0937a Merge pull request #700 from iChun/miscchanges
Fix RenderLivingEvent.Pre/Post not being fired by most Renders.
2013-07-31 01:35:18 -07:00
iChun 7b9971b20f Fix RenderLivingEvent.Pre/Post not being fired by most Renders. 2013-07-31 08:03:10 +08:00
cpw 952218c845 Add in some reverse lookup methods for game registry data 2013-07-29 22:05:22 +02:00
cpw 89d9fb3556 Updated FML:
MinecraftForge/FML@57befa89bb Fix keybindings being derped
MinecraftForge/FML@1d84e8063e Temporarily add a version of 'reobfuscate.py' that will resolve complex reobfuscation graph issues with specialsource. Copy it over 'reobfuscate.py' in the mcp runtime dir. Hopefully will have an MCP/specialsource fix in the coming days.
2013-07-28 22:40:13 +02:00
cpw 7d31e4b25e Temporarily add a version of 'reobfuscate.py' that will resolve complex
reobfuscation graph issues with specialsource. Copy it over 'reobfuscate.py'
in the mcp runtime dir. Hopefully will have an MCP/specialsource fix in
the coming days.
2013-07-28 22:38:26 +02:00
cpw e71ee7721b Fix keybindings being derped 2013-07-28 20:52:12 +02:00
cpw c3f62ed8bf Tweak setBlock in update tick - it should only send serverside updates for
source blocks. Experimental attempt to fix worldgen issues for fluid blocks
2013-07-28 19:25:51 +02:00
cpw 5c5cf3e7e7 Fix formatting error in PR 2013-07-28 19:15:00 +02:00
cpw 94045ea73e Merge pull request #695 from tommy1019/master
Fluid Rendering Fixes
2013-07-28 02:17:16 -07:00
tommy1019 e15c596e42 Fluid Rendering Fixes 2013-07-27 20:32:21 -05:00
cpw b317d10ade Add a translation map for looking up legacy liquid names to convert
to new fluid names.
2013-07-28 01:06:16 +02:00
cpw 31bd8d438d Add support for loading legacy liquid stacks as new fluid stacks.
Requires having been written with the "liquidname" code from forge 1.5.x
2013-07-28 00:53:23 +02:00
cpw 8b78f21199 Merge branch 'master' of github.com:tommy1019/MinecraftForge into miscchanges 2013-07-27 23:59:51 +02:00
cpw 8a8f5af084 Fix names for water/lava fluids. Closes #689 2013-07-27 23:37:06 +02:00
cpw f5a8974bb6 Merge branch 'master' of github.com:iChun/MinecraftForge into miscchanges 2013-07-27 22:57:44 +02:00
CovertJaguar fd5b7359e2 Add SneakClick bypass to client 2013-07-27 00:30:54 -07:00
tommy1019 077e05e0ed Fixed fluids eating each other
Fluids check for other fluids density before flowing, if their density
is higher they can flow into the other fluid, if not they can't.
2013-07-26 16:25:40 -05:00
iChun abdcd23d8b Update RendererLivingEntity.java.patch 2013-07-26 12:51:42 +08:00
iChun fb04d10886 if statement added 2013-07-26 12:49:14 +08:00
iChun 3e8711580e Add Pre and Post events firing for RendererLivingEntity 2013-07-26 12:46:52 +08:00
iChun f48dafda7e Add Pre and Post events for RenderLivingEvent 2013-07-26 12:38:17 +08:00
tommy1019 a42369e081 Fluid Render Fix
Formatting
2013-07-25 18:38:29 -05:00
LexManos 6397939c9e Merge pull request #665 from copyboy/master
Fix getArmorTexture by passing it the subtype
2013-07-24 13:18:31 -07:00
copyboy c9af365d44 Fix getArmorTexture by passing it the subtype 2013-07-24 22:12:38 +02:00
LexManos b6d543f15e Re-added deprecated liquids system. To be removed next major MC versions after issues with Fluids are fixed. (reverse-merged from commit 9b5208fa30)
This WILL be removed and should not be developed against aside for a temporary 1.6 release.
2013-07-22 15:19:35 -07:00
LexManos 8c3ebc7f87 Remove SideOnly(Client) in IBlockAccess.isAirBlock 2013-07-21 11:01:38 -07:00
LexManos ee70b21460 MinecraftForge/FML@10b16d32da Use json 2.9.1 nightly for OSX in release json like vanilla does. 2013-07-17 12:38:53 -07:00
LexManos f872ac0a90 Use json 2.9.1 nightly for OSX in release json like vanilla does. 2013-07-17 12:21:26 -07:00
LexManos acb6777ab5 General code cleanup of Fluid system. Made Fluid icons and associated functions non-sided. 2013-07-16 21:40:49 -07:00
LexManos f7ab5684e9 MinecraftForge/FML@3f21a2c1b4 Stupid spaces and windows escaping -.- 2013-07-16 14:35:22 -07:00
LexManos f4311e2fae Stupid spaces and windows escaping -.- 2013-07-16 14:34:43 -07:00
LexManos 8a8af5265e Package 'version.json' with universal jar for maunchers to use. It's the json used by the vanilla Minecraft launcher for Forge. 2013-07-16 13:55:31 -07:00
LexManos f72d672e0d MinecraftForge/FML@b2958c9066 Add quotes for paths with spaces -.- 2013-07-16 13:54:08 -07:00
LexManos a9e2a2089f Add quotes for paths with spaces -.- 2013-07-16 13:35:14 -07:00
LexManos 094c2bca2e MinecraftForge/FML@9520978b81 Use a temporary file for recompile's command line to combat command length to long issues. 2013-07-16 13:12:46 -07:00
LexManos f40e4cf3a8 Use a temporary file for recompile's command line to combat command length to long issues. 2013-07-16 13:08:26 -07:00
Chicken Bones 5d5d4cb448 Add onNeighborTileChange callback to block by generalizing func_96440_m to all blocks rather than just comparators. 2013-07-17 04:42:45 +10:00
LexManos 380c4ad2da Updated FML: MinecraftForge/FML@4981aa3421 Fix potential NPE in villager skin registry. Closes #678 2013-07-16 10:34:54 -07:00
LexManos 9de739723f Fix potential NPE in villager skin registry. 2013-07-16 10:32:29 -07:00
LexManos e57f1c230c Merge pull request #675 from Soaryn/patch-1
Fixes Vanilla Fluid Still Icon Setters
2013-07-15 22:36:56 -07:00
Soaryn 88e0ecf2cf Fixes Vanilla Fluid Still Icon Setters
Fixes null icons from being set for both the still water/lava icons, and sets the correct Icon.
2013-07-16 01:27:39 -04:00
LexManos 56ab2fd797 Updated FML: MinecraftForge/FML@c48b48ee15 Fix server launching. 2013-07-15 10:58:11 -07:00
LexManos 136e2180f7 Fix server launching. 2013-07-15 10:57:44 -07:00
Christian 81cce7b6ac Fix for new location of mcp logo. 2013-07-14 14:22:57 -04:00
Christian 745fa93f3f Updated FML:
MinecraftForge/FML@0378355c37 The server.classpath generates the runtime manifest, so it needs the non-debug asm jars.
MinecraftForge/FML@a3f48734ff Fix up jar sanity check code. FML validation of the jar works now and doesn't derp classloading.
MinecraftForge/FML@9947ba8503 Fix logo handling. no more NPE if the logo can't be found. Also, fix location of mcp logo now.
2013-07-14 13:47:53 -04:00
Christian 10c6e5e353 Fix logo handling. no more NPE if the logo can't be found. Also, fix location of mcp logo now. 2013-07-14 13:40:55 -04:00
Christian d0c2a8e62b Fix up jar sanity check code. FML validation of the jar works now and doesn't derp classloading. 2013-07-14 13:11:32 -04:00
Christian 8f2823709c The server.classpath generates the runtime manifest, so it needs the
non-debug asm jars.
2013-07-14 11:12:42 -04:00
LexManos c5af747da9 Monkey patch to try and make print flush properly. 2013-07-12 04:08:29 -07:00
LexManos c40499ab05 Update changelog generator to point to new jenkins. 2013-07-12 03:09:54 -07:00
LexManos 2e1aa99f54 MinecraftForge/FML@c625ef3009 Update Forge signature for new private key 2013-07-12 03:09:24 -07:00
LexManos bf6f038793 Update Forge signature for new private key 2013-07-12 03:05:20 -07:00
LexManos 70a6a316d7 Updated FML:
MinecraftForge/FML@7348929819 Kill release time scala libraries, to be re-evaluated after all movement is done and shit is fixed. May require manual instalation for mods that use scala.
MinecraftForge/FML@6de36d78f5 Coremods now have a primitive dependency capability. Also, we search mods dir for special "TweakClass" manifests. These are using the vanilla tweak mechanism to inject into Minecraft. Helpful for other "platform" systems, when you don't want to have to deal with json changes!
MinecraftForge/FML@d4b30422b6 Update build and eclipse workspaces for debug asm.
2013-07-12 00:34:32 -07:00
LexManos 5d89e17ae9 Update build and eclipse workspaces for debug asm. 2013-07-12 00:22:11 -07:00
Christian caeb0afecf Coremods now have a primitive dependency capability. Also, we search mods dir for special
"TweakClass" manifests. These are using the vanilla tweak mechanism to inject into
Minecraft. Helpful for other "platform" systems, when you don't want to have to deal
with json changes!
2013-07-11 23:23:33 -04:00
LexManos 3dd0b5d496 Kill release time scala libraries, to be re-evaluated after all movement is done and shit is fixed. May require manual instalation for mods that use scala. 2013-07-11 15:24:54 -07:00
LexManos e418dddbcf MinecraftForge/FML@b9f4b02cb0 Kill mcp's truncate method, for more useful logs. 2013-07-10 15:24:53 -07:00
LexManos bf127348c9 Merge pull request #661 from Adubbz/master
Made eating particles compatible with metadata
2013-07-10 15:24:07 -07:00
LexManos 09cf5feee5 Kill mcp's truncate method, for more useful logs. 2013-07-10 15:23:21 -07:00
Christian 75907e3815 Updated FML:
MinecraftForge/FML@e44e8b3112 Force a global asset scan prior to mod construction : you should be able to reference assets anywhere in your mod now.
MinecraftForge/FML@20e93a412e Fix up logos in the mod screen. Clean up some unnecessary casts and suppressions, use the -debug asm library at dev time, since it contains full symbols and code in compiled form.
2013-07-10 17:30:45 -04:00
Christian e33a1a02bf Fix up logos in the mod screen. Clean up some unnecessary casts and suppressions, use the -debug asm
library at dev time, since it contains full symbols and code in compiled form.
2013-07-10 15:47:13 -04:00
Adubbz c4ad7c3e2c Made eating particles compatible with metadata
Removed extra spaces

Made eating particles compatible with metadata
2013-07-10 20:39:15 +10:00
Christian 32680bb84d Force a global asset scan prior to mod construction : you should be able to
reference assets anywhere in your mod now.
2013-07-10 00:42:40 -04:00
LexManos 562e8e8021 Re-add reverted patch AGAIN cpw check your commits -.- 2013-07-09 12:56:34 -07:00
Christian c3fbd27a8d Updated FML:
MinecraftForge/FML@bab4d87ce7 Update FML for new stealth update for 1.6.2
2013-07-09 15:36:47 -04:00
Christian 28727a51a6 Update FML for new stealth update for 1.6.2 2013-07-09 15:00:28 -04:00
Christian a990c0bdc8 Remove forge ISidedInventory, deprecated since 1.5. 2013-07-09 11:38:54 -04:00
Christian 561b0fbe55 Allow optional rider interaction for entities, thanks for the suggestion Vswe.
Updated FML:
MinecraftForge/FML@7af5c21d74 @InstanceFactory was set to look for Fields instead of methods
MinecraftForge/FML@bc9d1fe657 Merge pull request #254 from CaptainShadows/patch-1
2013-07-09 11:23:49 -04:00
cpw 11bf88fceb Merge pull request #254 from CaptainShadows/patch-1
@InstanceFactory was set to look for Fields instead of methods
2013-07-09 07:19:24 -07:00
Christian 475918a1ca Updated FML:
MinecraftForge/FML@97269a5e3d Decode the file URL. Hopefully will make things work more..
MinecraftForge/FML@d4d522c597 And don't forget to remove the test code
2013-07-09 08:33:05 -04:00
Christian 1fe0dcec09 And don't forget to remove the test code 2013-07-09 08:31:40 -04:00
Christian fbfc11c9a9 Decode the file URL. Hopefully will make things work more.. 2013-07-09 08:30:47 -04:00
LexManos a85d82a859 MinecraftForge/FML@c913258ca3 Disable signature check of client for now, it's broken. 2013-07-09 05:04:50 -07:00
LexManos 95aa81bb3f Disable signature check of client for now, it's broken. 2013-07-09 05:04:11 -07:00
LexManos ae97ad2bca Updated FML:
MinecraftForge/FML@dfa3a2665d Add MC Version to installed version name.
MinecraftForge/FML@e91431fb70 Don't validate signatures on servers, they are not signed.
MinecraftForge/FML@c7ab872c85 Temporarily disable GuiModList's Mod logos.
2013-07-09 03:35:52 -07:00
LexManos 50a8b1cc68 Temporarily disable GuiModList's Mod logos. 2013-07-09 03:27:49 -07:00
LexManos a0211c4fb7 Don't validate signatures on servers, they are not signed. 2013-07-09 03:27:29 -07:00
LexManos f45499612d Add MC Version to installed version name. 2013-07-09 03:27:01 -07:00
LexManos 8eddb7f1b9 Updated FML:
MinecraftForge/FML@c997f2adbc FML now verifies that the minecraft jar is correct and intact. This is intended to discourage those who think that modifying the minecraft jar is still acceptable.
MinecraftForge/FML@0db4624b27 Don't initialize the server.
MinecraftForge/FML@4fa375683f Fix NPE in new debug line when patch targets don't exist.
2013-07-09 01:30:22 -07:00
LexManos 66531ad420 Fix NPE in new debug line when patch targets don't exist. 2013-07-09 01:21:50 -07:00
Christian 67caa6692d Don't initialize the server. 2013-07-08 22:31:15 -04:00
Christian 2f299820fb FML now verifies that the minecraft jar is correct and intact. This is intended to discourage those who think that
modifying the minecraft jar is still acceptable.
2013-07-08 22:10:06 -04:00
LexManos 29fabb12e0 Proper return for getRegisteredFluidContainerData thanks Soaryn. Ref issue #634 2013-07-08 18:54:03 -07:00
LexManos 34bcca2640 Fix accedential reverted patch. 2013-07-08 18:35:34 -07:00
Christian 38bd039a93 Make resourcelocation the class available on the server. 2013-07-08 19:40:15 -04:00
Christian 9071d7d5e2 Test server-siding ResourceLocation 2013-07-08 19:31:00 -04:00
Christian 033eedb50f Drop two domain related fixes that have been applied in vanilla.
Updated FML:
MinecraftForge/FML@c47d08c89d Tweak debug data on patched classes
MinecraftForge/FML@dbf5fe38ce We now generate an adler32 checksum for each patched file and verify at load time that they match. Mismatch won't crash, but will emit a big warning..
MinecraftForge/FML@e88a0cd13f Update for stealth update. Thanks mojang!
MinecraftForge/FML@2336002f20 The game is going to exit in face of patch mismatch, unless you force it to run with fml.ignorePatchDiscrepancies in the system properties.
2013-07-08 14:44:51 -04:00
Christian e0b7d1599c The game is going to exit in face of patch mismatch, unless you force it to run with fml.ignorePatchDiscrepancies in the system properties. 2013-07-08 14:34:03 -04:00
Christian bfe955dbf2 Update for stealth update. Thanks mojang! 2013-07-08 13:19:55 -04:00
Christian e64c07a109 We now generate an adler32 checksum for each patched file and verify at load time that they match.
Mismatch won't crash, but will emit a big warning..
2013-07-08 13:19:14 -04:00
Christian 94315253b1 Tweak debug data on patched classes 2013-07-08 12:28:32 -04:00
Captain Shadows b788686126 @InstanceFactory was set to look for Fields instead of methods
"fix it" to now match the javadoc :P

if it was set like that so modders wouldn't use it, it might be better to just say so in the documentation
2013-07-08 00:07:54 -04:00
LexManos 51ca5e028b Bump version to 9.10 for new MC version and removal of Fluids. 2013-07-07 14:05:48 -07:00
LexManos 9b5208fa30 Remove deprecated Liquids API, Use new Fluids system as replacement. 2013-07-07 14:05:23 -07:00
LexManos 85fd1d010d Updated FML:
MinecraftForge/FML@1d0384f8f6 Update for 1.6.2 and MCP 8.04
MinecraftForge/FML@111b0216fd Add the jsons for 1.6.2
MinecraftForge/FML@6f96d89e2b Update eclipse workspaces for 1.6.2
2013-07-07 14:03:26 -07:00
LexManos 611668931e Update eclipse workspaces for 1.6.2 2013-07-07 13:11:22 -07:00
Christian ab3220cbb3 Add the jsons for 1.6.2 2013-07-07 16:05:53 -04:00
Christian d164343522 Update for 1.6.2 and MCP 8.04 2013-07-07 15:49:11 -04:00
Christian 499610e44f Updated FML:
MinecraftForge/FML@c97ac284a5 Update ModLoaderFuelHelper.java
MinecraftForge/FML@3a200e901e Fix coremod injection into main system. Should stop double-dipping coremods.
MinecraftForge/FML@2676c8999c Update mcp data. fixes #248
MinecraftForge/FML@5990e29af7 Merge pull request #247 from jk-5/patch-1
MinecraftForge/FML@adc8972277 Add cascadedTweaks. This will allow simple coexistence for any other mod framework using the tweaker system as well. Hi Voxel and LiteLoader!
2013-07-07 00:58:32 -04:00
Christian dcab319acf Add cascadedTweaks. This will allow simple coexistence for any other mod framework using
the tweaker system as well. Hi Voxel and LiteLoader!
2013-07-06 22:26:03 -04:00
cpw 53a607bad9 Merge pull request #247 from jk-5/patch-1
Pull request for #232
2013-07-06 18:54:54 -07:00
Christian 9c8b8bb794 Update mcp data. fixes #248 2013-07-06 21:25:36 -04:00
Christian 412a86ec71 Fix coremod injection into main system. Should stop double-dipping coremods. 2013-07-06 20:51:00 -04:00
LexManos 13294083a9 Merge pull request #645 from XCompWiz/bedspawn
Makes player-specific spawnpoints dimension aware
2013-07-06 14:41:07 -07:00
XCompWiz 5f203ce808 Makes player-specific spawnpoints dimension aware
Makes ServerConfigurationManager correctly get player-specific spawn
point for the target dimension
Changes EntityPlayer to store and save a (bed) spawn point for every
dimension, as well as transfer them to respawn "clones"
2013-07-06 16:24:37 +03:00
LexManos dfc26937ca Re-gather list of Icons when atlas textures are stitched, allows for addition/removal of blocks/items after the atlas's inital constrction. 2013-07-05 22:50:55 -07:00
LexManos 22be4b49d5 Fix enchantment effect on single pass items. Closes #644 2013-07-05 16:55:42 -07:00
LexManos bc932a28ae Merge pull request #642 from MinecraftForge/newliquid
New liquid system
2013-07-04 13:11:36 -07:00
LexManos e9f1c83ff8 Mark old liquid system as deperated to be removed next Minecraft release. 2013-07-04 12:39:49 -07:00
LexManos 30be6d4bab Merge remote-tracking branch 'refs/remotes/origin/newliquid' into newliquid 2013-07-04 12:17:36 -07:00
Christian 1169ba9efb Merge branch 'master' into newliquid 2013-07-04 12:07:32 -07:00
Jeffrey Kog 3f257231a5 Update ModLoaderFuelHelper.java 2013-07-04 08:33:03 +02:00
LexManos 33ec5cdc44 Updated FML: MinecraftForge/FML@54e06e841d Move Resource refreshing until affter postInit. 2013-07-03 22:29:42 -07:00
LexManos d04480b8b0 Move Resource refreshing until affter postInit. 2013-07-03 22:29:10 -07:00
LexManos be14c33ed1 Add missing air checks to WorldGenTrees and ChunkCache Closes #593 2013-07-03 21:48:51 -07:00
LexManos b12872eed1 Fix compile errors temporarily, dont use till updated to new system. 2013-07-03 21:34:49 -07:00
LexManos 35caa32ad1 Merge pull request #539 from richardg867/techne-1
Techne model importer
2013-07-03 21:21:16 -07:00
LexManos 98aab2083b Render pass sensitive version of Item.hasEffect, Closes #517 2013-07-03 21:14:59 -07:00
LexManos 2b588ebce6 Fix lether item rendering colors. 2013-07-03 20:41:27 -07:00
LexManos d4ba95f606 Add hook for EntityWither trying to destroy a block. 2013-07-03 20:29:41 -07:00
LexManos 83504eb2e1 Merge pull request #600 from Lunatrius/rotation
Added rotation support for all vanilla blocks that can be rotated.
2013-07-03 20:16:25 -07:00
LexManos 7f5ec0eaef Fix domain issue with SoundPool entries. 2013-07-03 19:31:54 -07:00
LexManos 68ba3a84d6 Updated FML:
MinecraftForge/FML@7ce84491d1 Fix missing argument and startclient/startserver support.
2013-07-03 19:31:31 -07:00
LexManos a1db21a601 Fix missing argument and startclient/startserver support. 2013-07-03 19:30:30 -07:00
LexManos 125b134d87 Updated FML:
MinecraftForge/FML@155e846818 Add in support for mods/<mcversion> as a mod location. Also drop coremods as a location. They go in mods too now.
MinecraftForge/FML@3f4bf61ae6 Update key
MinecraftForge/FML@4545beb49d Add deobf-data to setup env.
MinecraftForge/FML@e24f949517 Fix eclipse workspaces and launch configurations.
MinecraftForge/FML@532bee7ce1 Update to new MCP bugfix version, Fixes: Missing Armor/Item rendering, and Boss health mapping issues.
2013-07-03 18:54:47 -07:00
LexManos 4f535cfbf8 Update to new MCP bugfix version, Fixes: Missing Armor/Item rendering, and Boss health mapping issues. 2013-07-03 18:23:38 -07:00
LexManos 0b1fdde35d Fix eclipse workspaces and launch configurations. 2013-07-03 18:22:57 -07:00
LexManos c3974de125 Add deobf-data to setup env. 2013-07-03 18:22:06 -07:00
LexManos f9236c4c98 Include MANIFEST file from FML's universal.jar, makes the jar runnable now! 2013-07-03 06:26:47 -07:00
LexManos 02e857827d TEMPORARY fix for MCP mapping issue. 2013-07-03 06:26:12 -07:00
LexManos 7e5560e60d Update dev worksapce: Proper natives location and new server launch profile. 2013-07-03 06:25:40 -07:00
Christian 30ec1e06c7 Update key 2013-07-03 08:28:59 -04:00
Christian a2a8f1247f Add in support for mods/<mcversion> as a mod location. Also drop coremods as a location. They go in mods too now. 2013-07-02 23:03:01 -04:00
LexManos f35783f0fb Updated FML:
MinecraftForge/FML@6f0eedc9a6 Fixed ClassCastException when loading ModLoader mods
MinecraftForge/FML@8844554da6 Merge pull request #243 from jrtc27/modclassloader
MinecraftForge/FML@7aa7221756 Fix transformer search
MinecraftForge/FML@5f7df5e742 Revert "Keep these on our servers until the launcher is actually fixed -.-"
MinecraftForge/FML@ad79b9ed86 Fix up some deprecation warnings, and clean up coremod code that's going away.
MinecraftForge/FML@ba3707af22 More javadoc cleanup
2013-07-02 18:16:04 -07:00
Christian e45767d20a More javadoc cleanup 2013-07-02 19:39:02 -04:00
Christian aaaffda3f0 Fix up some deprecation warnings, and clean up coremod code that's going
away.
2013-07-02 19:27:50 -04:00
Christian d648514a90 Revert "Keep these on our servers until the launcher is actually fixed -.-"
This reverts commit f1b533ad87.
2013-07-02 19:03:06 -04:00
Christian f8f78c8a80 Fix transformer search 2013-07-02 18:40:23 -04:00
cpw 18c5bde7d0 Merge pull request #243 from jrtc27/modclassloader
Fixed ClassCastException when loading ModLoader mods
2013-07-02 15:32:35 -07:00
LexManos e74ef3e86e Attempt to gather lastBuild information to fix ChangeLog's off-by-one issue. 2013-07-02 15:18:23 -07:00
LexManos ae59f1abb4 Move resource location resolution down to TextureAtlasSprite and allow for sprites that are not stitched. 2013-07-02 13:57:50 -07:00
James Clarke b2ef2bed36 Fixed ClassCastException when loading ModLoader mods 2013-07-02 20:48:00 +01:00
Christian c0b09854b3 Start: f1b533ad87
End: f21cd286ca
Updated FML:
MinecraftForge/FML@f21cd286ca Resource packs, part two. FML mods are now resource packs. Vanilla will scan anything under 'assets' and turn it into a resource prefix. Use resourcelocations to look stuff up.
2013-07-02 13:53:28 -04:00
Christian 5d0d45ea40 Resource packs, part two. FML mods are now resource packs. Vanilla will scan anything under 'assets'
and turn it into a resource prefix. Use resourcelocations to look stuff up.
2013-07-02 11:11:50 -04:00
LexManos 2b61ea417b Update ChestGenHooks for new Dungeon chest strcture. 2013-07-02 02:37:05 -07:00
LexManos e57886e05a Fix resource domain when loading icon. Textures should be located in /assets/{domain}/textures/{block|item}/{name}.png Same strcutre as before except 'assets' instead of 'mods'. 2013-07-02 02:06:12 -07:00
LexManos b0520f3656 Update filler block to prevent useless console warning. 2013-07-02 02:04:28 -07:00
LexManos 3e9349bf7b Make Block.setIconName public 2013-07-02 02:04:04 -07:00
LexManos d5549d770d Fix bound texture in Controls screen, Closes #631 and #629 2013-07-01 23:35:03 -07:00
LexManos 4034cfe9dc Updated FML:
MinecraftForge/FML@5a97d183df Remember to update your patches!!!!
MinecraftForge/FML@f1b533ad87 Keep these on our servers until the launcher is actually fixed -.-
2013-07-01 23:33:48 -07:00
LexManos 58a00d68a4 Keep these on our servers until the launcher is actually fixed -.- 2013-07-01 23:26:40 -07:00
Christian 0f319c41e0 Remember to update your patches!!!! 2013-07-02 02:14:31 -04:00
LexManos 7864f2c8ea Updated FML:
MinecraftForge/FML@91ecf71109 Fix -rel json
MinecraftForge/FML@efc369ee83 Fix EventHandler annotation.
MinecraftForge/FML@fbd57b3264 Mods are now loaded as resource packs. Vanilla will scan for valid prefixes based on subdirs of 'ass
ets' which can then be referenced as ResourceLocations with the "<prefix>:path" notation.
2013-07-01 22:54:19 -07:00
Christian 76a1489d4b Mods are now loaded as resource packs. Vanilla will scan for valid prefixes based on subdirs of 'assets' which
can then be referenced as ResourceLocations with the "<prefix>:path" notation.
2013-07-02 01:39:40 -04:00
Christian f978e6b50e Fix EventHandler annotation. 2013-07-02 01:08:51 -04:00
Christian 160b2dc749 Fix -rel json 2013-07-02 01:02:02 -04:00
LexManos c157875ecd Fix installer unintended replace.
Updated FML:
MinecraftForge/FML@9b6525e805 Point scala downloads to our servers, Launcher doesn't like standard maven repos.
2013-07-01 21:54:10 -07:00
LexManos b474a69a90 Point scala downloads to our servers, Launcher doesn't like standard maven repos. 2013-07-01 21:53:13 -07:00
LexManos dac329bcf1 Updated FML:
MinecraftForge/FML@29d6c875d0 Add FML Installer logo crated by @ZaverSLO https://twitter.com/ZaverSLO/status/349947190300508162
MinecraftForge/FML@3d17434510 Build installer package for the new client launcher.
MinecraftForge/FML@bf38d94756 Update json samples
MinecraftForge/FML@7037184a4e Fix up release JSON
MinecraftForge/FML@dc7d02ebf6 Fix json syntax error.
2013-07-01 21:42:52 -07:00
LexManos d072d91081 Release will now build a installer jar and use the standard 'target' output folder. 2013-07-01 21:42:33 -07:00
LexManos e156ec2940 Update ToolMaterial enum helper. 2013-07-01 21:41:47 -07:00
LexManos b758104a37 Fix json syntax error. 2013-07-01 20:33:26 -07:00
Christian fa9789a3d4 Fix up release JSON 2013-07-01 23:14:31 -04:00
Christian 46dcb86a62 Update json samples 2013-07-01 22:58:08 -04:00
LexManos 0f3e999323 Build installer package for the new client launcher. 2013-07-01 19:40:19 -07:00
LexManos 69d1a35cd5 Add FML Installer logo crated by @ZaverSLO https://twitter.com/ZaverSLO/status/349947190300508162 2013-07-01 19:38:44 -07:00
LexManos 14295fd4b3 Merge pull request #627 from MinecraftForge/1.6
Merge 1.6 branch
2013-07-01 16:51:27 -07:00
LexManos 7e8e083c80 Revert common folder fix, Common folder does nothing, feel free to delete it after first load. 2013-07-01 16:25:11 -07:00
LexManos ed5d8fa2e6 Fix src distrabution, and got rid of pesky common folder in eclipse workspace. src is now installable. 2013-07-01 15:50:49 -07:00
LexManos 895580de42 Merge pull request #626 from MinecraftForge/1.6
1.6.1 Branch Merge
2013-07-01 14:16:37 -07:00
Christian ddbec7d9dd Update mcp URL. 2013-07-01 11:06:20 -04:00
Christian 3e8f4552dd Cleanup coremod code, server side working now. 2013-06-30 22:51:56 -04:00
LexManos cd9a5d63a2 Add deobf data to merge-common, worspace is now actually runnable! 2013-06-30 19:41:51 -07:00
LexManos f37e5b8338 Add deobf data to src dist.
Dont create deobf jar as we ship the lzma
Added *.lzma to .gitignore
2013-06-30 19:15:53 -07:00
LexManos 4e1ac5b80d Fix wrong project name in distro eclipse launch. 2013-06-30 18:33:26 -07:00
LexManos d92b8e8589 Add windows lzma executable
http://tukaani.org/xz/
He states that most things are under public domain, But I couldn't find an exact reference to this executable.
I'm going to assume it under public domain and distribuiting it here is fine. If not someone please direct me to the apropriate license and I will act accordingly.
2013-06-30 18:31:24 -07:00
Christian 5735c7f603 Client launch for eclipse 2013-06-30 21:06:33 -04:00
Christian de18b5ecc1 Functional client @ 1.6.1 2013-06-30 21:02:23 -04:00
Christian 7371511e5a Tweak commands patch 2013-06-30 19:33:47 -04:00
Christian 569b791b93 1.6.1 2013-06-30 16:50:30 -04:00
Christian a82c90d7d6 Merge branch '16launch' 2013-06-30 13:20:46 -04:00
Christian 72e0adedeb Some fixes for updated mcp code 2013-06-30 13:17:20 -04:00
Christian daa85290e4 More fixups 2013-06-30 09:04:50 -04:00
LexManos ae922989ed Another typo 2013-06-30 03:55:26 -07:00
LexManos bdc0011e90 Fix typo in new packages. 2013-06-30 01:01:55 -07:00
LexManos c7758deffa Push conf folder for 1.6, Relied heavily on a yet-unreleased version of MCP. 2013-06-29 22:48:24 -07:00
RedmenNL 2c9e11299e Added more render methods to IModelCustom interface. 2013-06-29 23:26:39 -06:00
MachineMuse ca011729d3 Fixed both RenderAllExcept behaviours 2013-06-29 23:24:03 -06:00
Christian 572c9acc59 More fixes, binpatching works 2013-06-29 15:16:18 -04:00
Christian 5b5f05859c First draft of 1.6 update 2013-06-29 13:33:14 -04:00
Christian 70b1dcfbac New mappings for marker 2013-06-29 09:20:59 -04:00
Christian 069aba5b46 Tweak missing mapping 2013-06-29 09:20:59 -04:00
MachineMuse 0f25e6ec6b Added tessellation methods to obj model, for ISBRH-friendliness 2013-06-29 04:35:57 -06:00
LexManos 837a6fdf8a Add support for alternative maven servers in libraries.
Also download sources for public libraries, and atach them in eclipse. DOCUMENTATION!! YAYA!
2013-06-29 02:54:29 -07:00
LexManos 58ce9b33b3 Base GenDiff off deobf data's class list instead of the merged jar. Add option to delete target files that generate patches. 2013-06-29 01:40:01 -07:00
LexManos 028c77c3a0 Add Clean Server/Client launcher. Update Start.java to new Main class and login system. 2013-06-28 22:12:07 -07:00
LexManos da8fb7f8a0 Update eclipse projects for new libraries dependancies, and update packages for new 1.6 classes. 2013-06-28 20:31:02 -07:00
LexManos 4cd3d06286 Add suggestions output if it can. 2013-06-27 22:58:00 -07:00
LexManos 030e8e71a8 Fixed update_packages.py for new folder strcture. 2013-06-27 22:30:40 -07:00
LexManos cf448bb934 Add missing argument 2013-06-27 22:29:10 -07:00
LexManos 90c643183e Re-wrote/orginized a lot of fml.py. Almost everything is re-written/moved.
This is done in preperation for MCP to roll out SpecialSource support and the new 1.6 structure.
Also done for my sanity while reading through the code.

Intruduced a new function. If there is a 'mcp_data' folder in the FML folder, it will be copied to the MCP work directory after MCP is extracted.
It DOES overwrite anything that already exists.
This is intended for places like BuildServer to place libraries/assets to prevent them from needing to be downloaded every version.

Introduced a dev-env json. Need to write the eclipse workspace references to the new libraries.
Out custom json includes asm and legacylauncher.

Added proper OptionParsing to decompile.py
2013-06-27 20:48:52 -07:00
Christian 611c3b9591 Add a simple property annotation system for mods. 2013-06-27 08:40:31 -04:00
Christian b2e9557b87 Changed to the EventHandler annotation universally, documentation and stuff. 2013-06-26 14:52:56 -04:00
Christian 3c0048b6d6 Fixes, so it builds again.. 2013-06-24 16:30:18 -04:00
Christian b985ec886a Ignore binpatch 2013-06-24 16:03:54 -04:00
LexManos 3e346cb8b2 Add filter support for MCPMerger, and filter out libraries from the server's 'fat jar'. 2013-06-23 23:06:25 -07:00
LexManos 82c0fbce60 Upgraded minecraft downloader to work with new launcher's asset/library system
New parameter:
  --no-assets: Disables the downloading of minecraft's asset tree, recomended that build servers supply this flag to prevent downloading of useless data.
2013-06-20 16:23:15 -07:00
James af2b5eb6f6 Add an InputStream constructor to WavefrontObject
It is said that Resource Packs will return InputStreams. And I like putting my models into texture packs which, obviously, give InputStreams rather than URLs.
2013-06-19 15:57:44 -06:00
Ross Swartz b207111c50 Update OreDictionary.java 2013-06-17 19:09:40 -03:00
Christian 39858c6ead No more debug please 2013-06-15 01:11:29 -04:00
Christian 14ddd2be05 Fix build script. Add a sample JSON file. You'll need the newest Launcher code to run this. 2013-06-14 21:00:15 -04:00
Christian 30d836fa36 More fixups for new launcher model 2013-06-14 20:45:52 -04:00
Christian 07a5efe612 Merge in binpatch and use launcher 2013-06-14 17:21:49 -04:00
Christian 21240df8bc More tweaks 2013-06-14 09:32:51 -04:00
Christian a923a2c142 Server side tested and working. Setup is complex atm. That will change. 2013-06-13 09:57:55 -04:00
Christian 4802d04bfd First cut of runtime binary patching. Needs some work to actually test it in a real scenario.. 2013-06-12 08:53:10 -04:00
Ross Swartz 05b2a19bac Add stone and cobblestone to Ore Dictionary 2013-06-11 23:58:05 -03:00
Christian 83ed6fa32c Small tweaks to the mcp data. Nothing major.. 2013-06-11 14:47:23 -04:00
Christian c170b98a8c Attempt to properly fix deadlock if the internal server derps. It should never hang now. Damn you fast computer.. 2013-06-11 14:41:19 -04:00
Lunatrius 0c308a5f07 Added rotation support for all vanilla blocks that can be rotated. 2013-06-08 21:35:42 +02:00
Christian 146e773264 Fix sysout with trailing messages after a newline 2013-06-06 11:52:15 -04:00
Christian 1261c7a3e0 Add in an optional modid identifier for @SidedProxy. It's main use is when both scala and java @Mods reside in the
same package, and you want the @SidedProxy behaviour for a specific @Mod language type. In general it should not be needed otherwise.
2013-06-06 10:05:34 -04:00
Christian ab62ca7b1f Merge branch 'master' into newliquid 2013-06-06 09:39:19 -04:00
Christian fea7a25a86 Don't continue trying to send events to mods that depend on errored mods. 2013-06-04 13:59:04 -04:00
Christian 8602848f2c Don't throw an exception if the scala adapter find a java proxy. I may add some distinguishers to @SidedProxy so you know which mod it's for. 2013-06-04 12:51:46 -04:00
Christian 50992f2112 Merge branch 'master' of github.com:KingLemming/MinecraftForge into newliquid
Conflicts:
	common/net/minecraftforge/common/network/ForgePacket.java
2013-05-27 18:16:24 -04:00
Christian 2a064ffdc7 Send the "suspect list", and print the suspect versions 2013-05-27 11:03:23 -04:00
Christian 6ca37a60b7 Throw the sorting exception 2013-05-27 10:46:22 -04:00
Christian 8be20d6805 Add in a pretty sorting error screen 2013-05-27 10:28:00 -04:00
Christian e3cd509b9a More tweaks to the mod sorting code 2013-05-27 10:09:51 -04:00
Christian ece6290c19 Try and clean up cycle detection output a bit 2013-05-27 09:25:50 -04:00
King Lemming 6cd56ebed6 Forge Fluid System!
Signed-off-by: King Lemming <[email protected]>
2013-05-27 00:56:58 -04:00
Christian aa18bed75e Fix server side derp with Forge network packet handler 2013-05-21 11:01:50 -04:00
Christian c8cc7b27d1 Separate network mod config from setup. Allows for Forge Packet Handler nicety 2013-05-20 21:40:42 -04:00
cpw 8f779cf618 Merge pull request #230 from fnuecke/master
Alternative setter logic for @SidedProxy in Scala classes/mods.
2013-05-11 15:34:37 -07:00
LexManos 6b39f612df Don't spit error on LWJGL not supporting 4.3 just warning. 2013-05-11 10:55:39 -07:00
Florian Nücke 15e6ddcb14 Merge declaration and initialization of a variable. 2013-05-08 20:16:15 +02:00
Florian Nücke a14c627cd7 Some more Scala @SidedProxy adjustments. Now properly supporting pure singletons, i.e.
object C {
  @SidedProxy(...)
  var proxy: P = null
}
Removed fallback, as all such singletons are properly handled by the new code now, and class implementations fall back to the code also used for plain Java mods.
2013-05-08 19:04:35 +02:00
Florian Nücke 283dfb6e7d Alternative @SidedProxy setter for Scala. 2013-05-08 05:36:28 +02:00
LexManos 4db40c7861 Add version detection to astyle and print error if it doesnt detect version 2.0+
Also fixed astyle's config for max-instatement-indent that sometimes caused crashes with certian versions of astyle.
2013-05-03 14:26:27 -07:00
cpw 3d5658b90f Merge pull request #227 from CovertJaguar/patch-1
Improved Entity Spawn Error
2013-04-29 22:10:53 -07:00
CovertJaguar ce99b80932 Improved Entity Spawn Error 2013-04-29 20:41:20 -07:00
LexManos 42564b3988 Fix scalac detection to actually use the located command instead of defaulting to 'scalac' 2013-04-28 16:35:23 -07:00
LexManos bff831ce8d Update MCP's md5 for the fixed srg files. 2013-04-28 12:33:42 -07:00
Christian 3baad0a897 Update for minecraft 1.5.2 2013-04-27 01:24:06 -04:00
Christian 2c7c944e96 Don't leave scala running in interactive mode. 2013-04-23 22:56:18 -04:00
LexManos 74e9b293e1 Fix patch derp. 2013-04-23 19:47:43 -07:00
Christian 5a81b37bcf Fix when an old scalac is present on the system to not fail the build 2013-04-23 22:43:51 -04:00
Christian cee176eb96 Some fixups for scala compilation in MCP. Scala should now be compilable and reobfuscatable with srgnames in MCP. 2013-04-23 07:40:49 -04:00
Christian e97834b433 Fix URL for MCP 2013-04-23 07:22:25 -04:00
Christian 4d442ac219 Fix possible NPEs in GameData 2013-04-22 21:14:34 -04:00
Christian 8974a78c0a Attempt to reduce lines on the screen for id mismatch. Hopefully prevents game crashes. 2013-04-22 21:14:34 -04:00
richardg867 f3caada13a Complete it, got the bug figured out 2013-04-22 13:08:59 -03:00
richardg867 27d922d470 Techne model loader (incomplete for debugging) 2013-04-21 21:32:23 -03:00
cpw d15889075c Merge pull request #225 from MarcinSc/master
Suggested fix for issue 221
2013-04-21 11:32:51 -07:00
Marcin Sciesinski bdee7e3c5b Fixing the GameRegistry. Now it is possible to register a Block with a BlockItem using following code:
MyBlock myBlock = new MyBlock();
GameRegistry.registerBlock(myBlock, MyBlockItem.class, "myBlock");
where MyBlockItem class has one constructor with signature:
public MyBlockItem(int id, Block block)
2013-04-21 19:01:18 +01:00
Christian 0512525c58 Add a to string to fmlmodcontainer: should mean less derpy cyclic dependency data 2013-04-21 13:58:18 -04:00
cpw 76ffd19bc5 Merge pull request #224 from Glought/master
Fix for  Issue #223
2013-04-21 08:13:54 -07:00
Glought 074d7c2ec7 Update FMLDeobfuscatingRemapper.java
Fixes a "Type mismath:cannot convert from element type Object to FieldNode" error at line 176.
2013-04-21 05:09:19 -07:00
Christian 3446f1ce26 Fix scala supporting SidedProxy. It should work now. 2013-04-20 23:31:22 -04:00
Christian 6c0bb61425 Fix a small modloader compatibility derp: closes #222 2013-04-20 22:55:56 -04:00
Christian e204d580a8 Fix possible NPE in findItemStack, closes #218 2013-04-17 07:55:33 -04:00
Christian 3d142df102 Use more expressive language when a version specifier is a simple unbounded above condition 2013-04-16 13:46:55 -04:00
Christian 0888a95f2d Fix to output versions in crash logs 2013-04-16 13:46:55 -04:00
cpw 470070e2ce Merge pull request #216 from agaricusb/add-srgname
Add srgname to registerTileEntityWithAlternatives
2013-04-15 15:50:47 -07:00
Christian 3020daf42d Merge branch 'agaricusb-fix-deobf-field' 2013-04-15 17:31:09 -04:00
Christian 1a9cb9e3c9 Add in some caching of the read field descriptions for efficiency 2013-04-15 17:30:35 -04:00
Agaricus 03bc9cf00a Add type info to properly deobfuscate overloaded fields. Fixes #210. 2013-04-14 16:54:11 -07:00
Agaricus 76275cafc4 Add srgname to registerTileEntityWithAlternatives 2013-04-14 14:11:37 -07:00
Christian 0a1f3e3150 MCP names update 2013-04-10 12:28:20 -04:00
LexManos d89f0dc683 Re-worked the Texture patches, optifine helper function, and re-added support for dynamically rotating the texture for mod authors who do things horribly wrong. 2013-04-09 20:06:41 -07:00
Christian ff95739dc8 Fix compilation derp, and clean up rotation helper. 2013-04-09 21:20:31 -04:00
Christian 2208df18c4 And add the patches *sigh* 2013-04-09 20:26:10 -04:00
Christian 10f08460a6 Very significant improvement in performance by using glSubImage to upload data. Inspired by frequent complaints about performance of hires
texture packs. They probably still need a beefy system but should work. Hopefully I can figure out why the subImage GL side copy isn't working
properly for an even more significant speed boost. But this gets things started.
2013-04-09 20:15:14 -04:00
LexManos bc44fbe7dd Fixed issue with instalation when java/javac commands had quotes. 2013-04-05 10:26:33 -07:00
LexManos 5cd066767a Sanitize input to isRemappedClass to use '/' as a package seperator like the srg files. 2013-04-04 23:30:10 -07:00
LexManos 2c0133af1d Added the ability to save transformed classes to disc for debugging. 2013-04-04 10:32:48 -07:00
Christian cc2bf9d8ac Fix NPE when branding isn't present 2013-03-31 10:01:46 -04:00
Christian 5be6e8b756 And the core patches for that 2013-03-30 12:13:53 -04:00
Christian 41cd50d4c0 Change snooper/crash report brand handling. fmlbranding now loads another string! 2013-03-30 12:12:54 -04:00
Christian 1bfb87a701 Fix up derp in access transformer 2013-03-27 19:23:10 -04:00
Christian 27fe51a39c Attempt to make any "default package" class public. This might fix problems with certain modloader mods that ship changes to vanilla classes. 2013-03-27 16:54:26 -04:00
Christian a408fec0b8 Add some information, and a log message letting you know it worked 2013-03-23 16:01:20 -04:00
Christian f41210d982 Add a mechanism to dump the registry- useful for mod developers. 2013-03-23 15:39:34 -04:00
Christian 49ebcae9a1 Validate supplied stack size 2013-03-23 15:10:13 -04:00
Christian 4550b5795a Clone the itemstack, and allow for passing in a stacksize 2013-03-23 14:58:25 -04:00
Christian db46ea94bc Itemstacks in the GameRegistry (manual registration by mods) 2013-03-23 14:48:57 -04:00
Christian 1d0e8e9935 Fix mismatch screen a bit. Should render more correctly now and
at least not be blank in a lot of circumstances..
2013-03-22 10:20:53 -04:00
cpw b6835334b2 Merge pull request #208 from jrtc27/patch-1
Fixed FMLRelaunchLog's Newline Handling
2013-03-22 05:44:38 -07:00
James Clarke 84684cf3b6 Fixed FMLRelaunchLog's Newline Handling
System.out.println("\n") causes currentMessage to start with a newline character, which means idx will always be 0 from then on. Therefore if idx is 0 messages must still be logged, otherwise no more messages sent to stdout will be logged and they will just accumulate in currentMessage.
2013-03-22 09:19:39 +00:00
Christian 7e87a2e18f Fix up patch properly. Also, fix md5s for the jars. 2013-03-22 01:48:21 -04:00
cpw d5bce9d7f8 Merge pull request #206 from mDiyo/patch-1
Fix missing block world rendering
2013-03-21 07:41:35 -07:00
mDiyo 68f48f4acc Fix missing block world rendering 2013-03-21 07:10:55 -07:00
LexManos c33f8316d9 Merge MC 1.5.1 branch to master. 2013-03-21 04:10:30 -07:00
LexManos 83b1acb169 Merge pull request #204 from agaricusb/fix-mcpdir
Fix install.py --mcp-dir option
2013-03-20 10:24:27 -07:00
LexManos b6f2573adb Updated for new PR client jar. 2013-03-20 08:59:25 -07:00
Agaricus 79abc05c20 Fix install.py --mcp-dir option. Fixes #204. 2013-03-19 21:42:04 -07:00
LexManos c0eaa8d743 Someone derped up this function bad, revert name. 2013-03-19 17:54:06 -07:00
LexManos 4900d41946 Updated to latest MCP and Minecraft 1.5.1 Pre-release. 2013-03-19 15:48:42 -07:00
LexManos 11d5ac1e07 Fix NPE with CoreMods who do not have the new MCVersion annotation. 2013-03-19 13:48:18 -07:00
Christian b8f72c678b Support simple mc version test in coremods, only effective through
jar loading.
Also, log some more data about the environment.
2013-03-17 23:40:12 -04:00
Christian ed17b11a76 Use the relaunch log, for class circularity safety. 2013-03-17 23:19:39 -04:00
Christian ab79ef7e19 Fix the logger to treat newlines better, hopefully. Closes #199 2013-03-17 23:15:18 -04:00
LexManos a8ae410493 Fix potential NPE in class loading and add extra debug information. 2013-03-17 11:54:26 -07:00
cpw e53e39343b Merge pull request #200 from bspkrs/patch-2
Added comments to note FML-only methods
2013-03-14 18:37:08 -07:00
Christian 06347b2a54 Fix AllPublic access transformer not affecting methods. Should fix modloader
compatibility
2013-03-14 15:53:19 -04:00
bspkrs 30f76c67e5 Added comments to note FML-only methods 2013-03-14 01:29:36 -03:00
LexManos d98a805b30 OS X's python 2.6.1 has a bug in zipfile.extractall that makes it unzip directories as regular files. So switch to extract 2013-03-13 13:11:43 -07:00
LexManos 99b938a800 Allocate more ram {typically 256 is defailt} to fermflower, should fix decomplication issues on OSX 2013-03-13 13:11:10 -07:00
Christian a208d69a09 Fix up stupid derp in IMC code: actually reset the IMC list after
each delivery. Fixes a bunch of mods. Sorry everyone.
2013-03-13 15:09:50 -04:00
Christian a80049eca2 Pass obfuscation status to coremods 2013-03-12 21:06:37 -04:00
Christian 78732231d4 Fix up deep tree deobfuscation 2013-03-12 20:33:19 -04:00
LexManos 71fc1afd0d Missed joined.exc, must fix scripts. 2013-03-12 15:12:49 -07:00
LexManos 619c97a634 Update MCP for latest PR silent update. 2013-03-12 15:02:58 -07:00
LexManos 81d9e8315c Readjust size of mods button when Minecraft Realms button is enabled. 2013-03-11 16:20:56 -07:00
Christian 1f4098d779 Update MCP, fixes the "broken texture packs" problem. 2013-03-11 16:31:26 -04:00
Christian f08dec0d63 Fix "0 mods" display when installed in forge. 2013-03-10 12:12:22 -04:00
Christian afb18ee321 Change type of connection queue to a concurrent linked queue. Much more efficient, hopefully. Closes #189 2013-03-10 01:25:36 -05:00
Christian b6d98f47a8 Merge branch 'master' of github.com:Uristqwerty/FML 2013-03-10 01:22:24 -05:00
Christian 424ba13bb2 Fix supertype parsing to handle null superclass (Hi Object!). Closes #160 2013-03-10 01:20:08 -05:00
Christian 72f55cfd08 Fix demo mode crash. Closes #187 2013-03-10 01:15:16 -05:00
Christian d3d4e7683c Fix coremods without a manifest crashing the game. Closes #181 2013-03-10 01:05:31 -05:00
Christian 796f70b545 Fix reflection helper: it needs to unmap the classname to find the field maps. 2013-03-09 17:58:18 -05:00
Christian 46b909e818 Try a different way of remapping the fields. Should work because it's userspace, not relauncher space 2013-03-09 17:36:31 -05:00
Christian a713300e0a Revert "Use the reobfuscation maps in the reflection helper for field lookups: should help some reflection cases with the deobf."
This reverts commit 485db6be2e.
2013-03-09 17:32:11 -05:00
Christian c33cd0d9ea Use the reobfuscation maps in the reflection helper for field lookups: should help some reflection cases with the deobf. 2013-03-09 17:19:48 -05:00
Christian 0d3d03ab83 Fix up some relauncher stuff: the vanilla applet works now, as do other applets. Deobf data is resolveable for them too. 2013-03-09 15:25:58 -05:00
LexManos d24461c50a Fixed srg name of minecraftDir for runtime deobf. 2013-03-09 11:52:40 -08:00
Christian f13437df46 Fix runtime deobfuscation for remapped inner classes 2013-03-09 14:06:39 -05:00
LexManos a8da44fb8f Fix Multi-part entity children ID issue, mobs with custom spawning must deal with child ids themselves. 2013-03-09 10:07:41 -08:00
Christian a98bf99037 Fix up some small things, merging into mainline 2013-03-09 12:39:36 -05:00
Christian 23ea71130f Merge branch 'snapshot15' 2013-03-09 12:26:14 -05:00
Christian 1176144590 Fix accidental commands.patch overwrite 2013-03-09 12:25:24 -05:00
Christian 9b8c65d3c2 Merge branch 'snapshot15' 2013-03-09 12:19:37 -05:00
Christian 3c14424e30 Some fixes for the snapshot 2013-03-09 12:10:13 -05:00
Christian 1a3022ae7a Revert "Fix modlist to use the new texture binding functions, i think"
This reverts commit 48544db690.

Conflicts:
	client/cpw/mods/fml/client/GuiModList.java
2013-03-09 11:12:12 -05:00
cpw 3f197d0b30 Merge pull request #195 from RainWarrior/snapshot15
Fixes GameRegistry.registerBlock
2013-03-09 07:07:48 -08:00
RainWarrior c2fce94d6b Fixes GameRegistry.registerBlock 2013-03-09 14:06:12 +04:00
Christian 2dece4d42a Update MCP info for latest 2013-03-08 23:14:30 -05:00
Christian 07513ff7c8 Support the MCP format of partial reobfuscation for portability. Ensure modloader-like compatibility 2013-03-08 23:13:39 -05:00
LexManos 6f124e0f1a Update for new MCP with srg reobf. 2013-03-08 18:11:44 -08:00
Christian ed3b056305 Update to MCP 1.5 and minecraft 1.5. 2013-03-08 20:36:05 -05:00
Christian 0de7554d8b Global object registry, also, support the new itemblockwithmetadata constructor 2013-03-08 13:17:12 -05:00
Christian 304e717aea Scala support!
It's still primitive, I hope that people will like it. I do :)
2013-03-07 20:22:24 -05:00
Christian f744cd0686 Tweak license text- any osi licensed project can use the asm transformer code 2013-03-07 19:41:52 -05:00
Christian 845a9c5792 Fix up state transition derp when the server crashes with an error- it shouldn't double-derp 2013-03-07 19:37:52 -05:00
Christian ba5165f86b Strip deprecated code 2013-03-07 19:33:34 -05:00
Christian d2509a70b7 Refresh copyright notices on everything 2013-03-07 19:25:48 -05:00
Christian 545d5e0524 Refresh the renderengine after modloading is complete. Should fix issues with out-of-place texture registration by mods. 2013-03-07 19:02:26 -05:00
Christian e7e2ffd8fb FIX massive performance issue with FML. Thanks to @sfPlayer1 for finding
this epic derp on my part!
2013-03-06 14:00:28 -05:00
Christian 56be84a3b8 Update next render to 40 2013-03-04 22:52:24 -05:00
Christian 9cbf2a08e9 Capture Minecraft logs into FML logging 2013-03-04 22:45:58 -05:00
LexManos 95497900c3 Force file name encoding to UTF-8, caused different zips on different systems. 2013-03-04 18:19:06 -08:00
LexManos 530b6fb074 Ignore again, testing submodule. 2013-03-03 11:54:53 -08:00
LexManos fd94a8f541 Ignore this commit. 2013-03-03 11:52:47 -08:00
Christian a37607979d Ignore deobf data 2013-03-03 14:04:41 -05:00
Christian c8a403fa24 Force the joined.srg timestamp to zero- avoids annoying sha1 differences 2013-03-02 15:06:13 -05:00
Christian 879213019b Don't enforce signatures on minecraft classes 2013-03-02 14:48:08 -05:00
Christian b1e826eb62 Update MCP URL for snapshot 2013-03-02 10:56:25 -05:00
Christian 3a2d167885 Fix up runtime deobfuscation. Working well now. 2013-03-02 10:46:32 -05:00
Christian 429dfc3d3d Build, and use, MC versioned deobfuscation data 2013-03-02 10:30:45 -05:00
Christian 245e7312b2 Merge branch 'runtimedeobf' into snapshot15 2013-03-02 10:04:06 -05:00
Christian 8b8b150aa9 Add in build for deobf data zip file, update for official mcp 7.39 2013-03-02 10:02:02 -05:00
LexManos 97f2bbe5dd Fix exc for renamed Behavior classes. 2013-03-02 00:48:44 -08:00
LexManos a0a4683ef9 Actually remove classes from the csv when removed, and moved All EntityMinecart entities to net.minecraft.entity.item 2013-03-02 00:12:31 -08:00
LexManos 5ef2c4c5ab Delete unneeded patch 2013-03-02 00:11:48 -08:00
LexManos e0c7e3859d Readd ignore for argo and bouncycastle, needed for our replacement to work properly. 2013-03-02 00:11:33 -08:00
Christian 793ae904af Update FML to 1.5 snapshot 13w09c 2013-03-02 02:06:32 -05:00
Christian f9094e3f85 Tweaks to runtime deobf 2013-03-02 01:49:45 -05:00
LexManos 81bf16decd Update distribuited eclipse's classpath for updated libraries. 2013-02-28 04:22:34 -08:00
LexManos 4272159492 Fix crash in GuiModList for mod logo files, logo is not rendering for unknow reason. 2013-02-27 22:41:00 -08:00
LexManos d8e82d4c35 Fix bug in rename_vars where certian items would fail to be renamed. 2013-02-27 22:40:15 -08:00
LexManos 3d48e707e8 Just enable server side compile, and warn not to cmplain to us. 2013-02-26 14:54:18 -08:00
LexManos 685aecddac Fixup reobfusication of server code if present. 2013-02-26 14:34:51 -08:00
Christian e7b1242cfb Tweak IASM hook api. You can return multiple classes now. 2013-02-26 15:04:45 -05:00
Christian e4dd3791ef Merge branch 'runtimedeobf' into snapshot15 2013-02-26 10:24:03 -05:00
Christian 7b0745c336 Change readFully to actually read a bunch of bytes at once now. Thanks to nallar and aartbluestoke for the suggestion to
revisit this..
2013-02-26 01:07:14 -05:00
Christian 2e269c967a Clean up more junk 2013-02-26 00:28:12 -05:00
Christian b5ba054fe5 Update libs for 1.5. Lots of new libs. 2013-02-26 00:16:57 -05:00
Christian 939bf833b3 Fix renderengine patch *sigh* 2013-02-25 22:06:20 -05:00
Christian 22831e6b63 Merge branch 'master' into snapshot15
Conflicts:
	patches/minecraft/net/minecraft/client/renderer/RenderEngine.java.patch
2013-02-25 21:53:56 -05:00
Christian c056f49796 Merge branch 'master' into snapshot15
Conflicts:
	client/cpw/mods/fml/client/TextureFXManager.java
2013-02-25 21:18:08 -05:00
cpw 53855cc96b Merge pull request #188 from immibis/master
Console log thread should be a daemon thread.
2013-02-22 22:35:14 -08:00
immibis 75c1dc1091 Console log thread should be a daemon thread. 2013-02-23 19:27:16 +13:00
LexManos 604e81a323 Fix sprite map issue. 2013-02-22 14:45:25 -08:00
Christian ad582c82a0 Merge branch 'master' into runtimedeobf 2013-02-17 16:29:13 -05:00
Christian 4cafd6c627 Fix Language Registry, closes #163 2013-02-17 16:28:54 -05:00
Christian d25d70d59d Fix Language Registry, closes #163 2013-02-17 16:22:58 -05:00
Christian 047de02402 Merge branch 'master' into runtimedeobf 2013-02-16 14:28:29 -05:00
LexManos bd25e14545 Option to disable renaming for srgnames. 2013-02-08 14:50:17 -08:00
Christian ae58a0dbe3 Fix HD mob skins, FINALLY!!!
Stupid eyes are stupid.
2013-02-06 01:25:46 -05:00
Christian 06eea87b71 Fix up mistake that broke all modloading. Nice. 2013-02-04 10:58:48 -05:00
Christian 11f226e813 Fix some class naming and packaging issues, pending an MCP update
for the same
2013-02-02 10:54:48 -05:00
Christian 92a377a4e8 Update for MCP 7.34 and MC 13w05b 2013-02-01 23:05:23 -05:00
Christian 74043f515f MCP compilation works 2013-02-01 22:42:28 -05:00
Christian 3101006e58 IMC tweaks: runtimeMessages now work (thanks for all that testing for this much requested feature!)
and IMCEvent will no longer remove messages if no one gets them, so you can do
just manual runtime polling, if you wish.
2013-01-31 13:39:53 -05:00
Christian 46ccfb235d More logging tweaks. You can probably configure individual mod log files if you wish now 2013-01-30 20:55:12 -05:00
Christian 0c6019da8f A log of logging cleanup. FML will now read logging.properties to configure logging channels a couple of times during startup.
You should be able to filter a lot of messages based on things like modid and certain FML related features that can be noisy
like item tracking.
Should close #175
2013-01-30 18:57:21 -05:00
Christian 7c6c1254fc Final part of the deobfuscation data setup- fields are now deobfuscated as well.
All that remains, is to figure out what and how to distribute the deobfuscation data itself.
2013-01-28 17:48:44 -05:00
Christian 0c4347f2c3 Read the joined.srg file directly from lib/deobfuscation_data.zip now. Still debating distribution method. 2013-01-28 17:39:22 -05:00
Christian b41af51ccf Now actually works for mods, somewhat. It currently generates access violations for
ModLoader mods that presume access to fields that are not actually accessible from
a different package.
2013-01-27 22:42:36 -05:00
Christian 9c2b899454 Method deobfuscation now works 2013-01-27 21:50:08 -05:00
Christian 82415f3962 Working to read class names and remap them at runtime. 2013-01-27 17:09:00 -05:00
Christian b4c7fe1d0e First draft runtime deobf 2013-01-27 15:55:37 -05:00
Christian 5c99e3488a Try and handle "death on startup" a bit cleaner 2013-01-27 15:54:36 -05:00
Christian c19646421a Deprecate the old GUI ticktype. They're dead and have been for some time. 2013-01-24 17:29:46 -05:00
Christian 3dbffd1754 Tweak a method signature 2013-01-24 10:23:36 -05:00
LexManos d9db242f4c Add parameters to FML install to enable/disable certian aspects. Applying patches, running transformer/merger, and decompiling server. 2013-01-24 03:08:19 -08:00
Christian 331e6bcf62 Merge branch 'master' into snapshot15
Fix up compilation and patching errors

Conflicts:
	common/cpw/mods/fml/common/registry/GameRegistry.java
	conf/joined.srg
	conf/params.csv
	conf/version.cfg
	patches/minecraft/net/minecraft/server/dedicated/DedicatedServer.java.patch
2013-01-22 15:21:22 -05:00
Christian 1b332fc1ea Fix up packages.csv ordering for easier diffing 2013-01-22 14:43:27 -05:00
Christian 51fcf93605 Update for MCP7.30c - fixes redstone rendering issues 2013-01-22 14:40:09 -05:00
Christian 472ca8c8a9 Add in a registry method to allow for alternative TileEntity names- they will be used to support
loading maps containing the older definitions.
2013-01-22 13:11:32 -05:00
Christian c13502c690 Remember to add the new patches! 2013-01-22 09:32:53 -05:00
Christian 6962786e4b The "ServerStarting" event should now properly crash the server if it fails,
so the client will properly exit. Also, added in a "pre-server-start" event
that fires before the worlds are loaded for a save, just for you immibis.
2013-01-22 09:17:04 -05:00
Christian 509b5f8e7e Javadoc cleanup 2013-01-21 21:37:29 -05:00
Christian 825ecf1a7f Fix breaking change 2013-01-20 17:54:56 -05:00
Christian 7f4818fd94 Merge branch 'patch-1' of https://github.com/bspkrs/FML into gh-updates 2013-01-20 11:31:47 -05:00
Christian b52c44e42b Merge branch 'FMLLogFormatter' of https://github.com/donington/FML into gh-updates 2013-01-20 11:31:24 -05:00
Christian 2c58102515 Update MCP to MCP7.26a and refresh MCP names 2013-01-20 10:30:36 -05:00
Christian 3ddf9b2382 Update address of the FML repository to the new location in all the files 2013-01-18 21:26:43 -05:00
bspkrs cb769265f0 Fix logical error in comment text 2013-01-16 23:49:09 -05:00
Christian d576691bfa Update license text to make clear that FML is not a way to sidestep
MCP licensing.
2013-01-15 16:54:26 -05:00
Christian 180173fa94 Fix mcp conf md5 signatures for the snapshot 2013-01-12 14:25:03 -05:00
donington 3e4ed24750 FMLLogFormatter: dynamic log level name
FMLLogFormatter now uses getLocalizedName or getName for log level name

Changes to be committed:
	modified:   common/cpw/mods/fml/relauncher/FMLLogFormatter.java
2013-01-12 00:42:36 -05:00
Christian 334e386b56 Temporary hosting 2013-01-12 00:38:42 -05:00
Christian c048ec7aef Another packaging update. I think we're done now. 2013-01-12 00:33:32 -05:00
Christian 3e5a3fb0e4 Fix modlist to use the new texture binding functions, i think 2013-01-12 00:27:11 -05:00
Christian 59af780c91 A couple of packaging tweaks, clean up more junk. It may come back but for now it's gone 2013-01-12 00:17:35 -05:00
Christian cad228093d Delete old patches not needed anymore 2013-01-11 23:53:14 -05:00
Christian 431372dc5f Initial patch update for snapshot 2013-01-11 23:47:05 -05:00
Christian 31faf09c49 Initial setup for snapshot- the client compiles, but patches fail to apply. 2013-01-11 22:49:09 -05:00
LexManos 674a9e5e52 Updated patches for new JAD style names. 2013-01-11 13:16:40 -08:00
LexManos 04e4ce6266 FML will now rename local variables to have JAD-style names instead of FernFlower var## names. New script to do this, to allow for modders to run it over there own code: python rename_vars.py -mcp [folders to rename]... 2013-01-11 13:16:23 -08:00
Christian 8edde44161 Fix incorrect end length calculation. Closes #161 Thanks BStramke! 2013-01-11 09:41:47 -05:00
Christian 79c7933b5e Fix LanguageRegistry loading files in UTF-8 format. loadLocalization should work for non-xml in
all languages now (assumes UTF-8)
2013-01-08 08:46:50 -05:00
cpw 256aef5e0f Merge pull request #158 from CovertJaguar/patch-2
Added an accessor for villagers
2013-01-08 05:36:45 -08:00
CovertJaguar 224d933564 Added an accessor for villagers 2013-01-07 14:55:17 -08:00
LexManos 550928735e New python script to update java files for new package names. Usage: paython update_packages.py --mcp-dir <mcp folder> [Folders To Repackage] 2013-01-06 22:10:19 -08:00
LexManos 00f65d2c40 New python script for signing partial jar files. See comments inside for details. 2013-01-06 22:09:12 -08:00
Christian 55ca46b382 Move server stopped *after* the server has actually stopped. *sigh* 2012-12-31 01:20:35 -05:00
Christian 80193d4969 Add in a "server stopped" event 2012-12-30 23:52:38 -05:00
Christian 2454ed0fbf Add in some classloader debugging information: use fml.debugClassLoading=true as a system property
to track down problems with classes not being found or loading erratically.
2012-12-30 21:32:37 -05:00
Christian 3715b73f05 Revert MCP name change for canConnectRedstone - it conflicts with a forge method of the same name and breaks 1.4.6 to 1.4.7 compatibility 2012-12-29 00:00:24 -05:00
Christian 964c51f4ae Update for MC 1.4.7 2012-12-28 10:07:53 -05:00
Christian bf9272f61e Fix multiple GUI containers for ML containers. Sorry ultimatechest that
this fix took so long, a bug report at github.com/cpw/FML would help,
next time ;)
2012-12-27 23:00:52 -05:00
Christian 193aae6030 Log if there's a problem reading the class bytes 2012-12-27 23:00:37 -05:00
LexManos 95f0315634 Fix NPE in fingerprint loading, and pass expectged fingerprint to FMLFingerprintViolationEvent 2012-12-25 15:59:30 -08:00
Christian 35ee8510fe Fix a message delivery issue in IMC 2012-12-24 09:41:22 -05:00
Christian 052d798970 Some tweaks for signing and ID matching 2012-12-23 22:27:26 -05:00
LexManos 484a673b1f Remove unneeded file 2012-12-20 14:30:59 -08:00
LexManos c5a1b58d85 Fixed placement of onConnectionClosed callback. 2012-12-20 14:30:41 -08:00
LexManos 909b629fa4 MCP will reobf classes with reserved names in windows to a legal file name. And FML will try to read these classes over the default ones. 2012-12-19 19:10:00 -08:00
LexManos 48551959ec Output obfed files with reserved windows names to _NAME.class 2012-12-19 18:12:11 -08:00
LexManos c77f20ae17 Add quotes around javac command. 2012-12-19 02:58:09 -08:00
Christian 6201e51134 Update MCP to newer version
Fix fingerprint fire
2012-12-18 16:43:48 -05:00
Christian 2fc0ba693c InterModComms now supports a runtime polling based model for inter-mod comms at
runtime.
Deprecate method that shouldn't be used. COPY it's content to your mod. Don't CALL it.
2012-12-18 13:58:57 -05:00
Christian 926766b487 Don't be as alarming about item overwrites. 2012-12-18 08:33:46 -05:00
Christian 7caae273c5 Added configuration file which allows modids to ignore ID validation checking. IT WILL CRASH YOUR GAME in 99.999% of cases.
Immibis is a whingy ass. And TinyTimRob too. Now STFU and GTFO. closes #510 for ever.
2012-12-18 08:15:46 -05:00
LexManos ca2d1fb033 Dixed ev eclipse worksapce, now references BC. 2012-12-18 05:10:32 -08:00
LexManos ec8d75d1b2 Added client src folder to classpath for startclient/startserver. 2012-12-18 05:06:20 -08:00
LexManos e9cabc2b7e Removed hardcoded additions 2012-12-18 05:05:25 -08:00
Christian 5770708e75 Update to MC 1.4.6 2012-12-17 21:48:29 -05:00
Christian 251cb92b12 Fix build script 2012-12-17 17:56:00 -05:00
Christian 0b36189547 more 1.4.6 tweaks 2012-12-17 17:00:54 -05:00
Christian 47dfd99d4f More work 2012-12-17 14:30:51 -05:00
Christian 289ce3339a Merge branch 'securityupdate' 2012-12-17 11:46:47 -05:00
Christian 65473ad838 Merge branch 'master' into securityupdate 2012-12-17 11:46:27 -05:00
Christian 25c367f9db Fix up handling null names. *sigh* 2012-12-17 10:29:54 -05:00
Christian e6c71bb148 Some tweaks to item identification. The GameRegistry methods are deprecated
to encourage you to use the new named ones instead. These will force a
name on the item/block, allowing for stronger matching than "sequential guessing"
2012-12-16 22:57:11 -05:00
Christian bbe4b9fbc2 More fixes 2012-12-16 21:22:55 -05:00
LexManos 3369976c05 Updated MCP download mirriors upon Searge's request. 2012-12-16 05:35:46 -08:00
Christian a26b495ef9 Move Side and SideOnly to relauncher package 2012-12-15 23:21:26 -05:00
Christian 8f3b1aeff7 Fix newline fun 2012-12-15 22:37:32 -05:00
Christian d811fea82c More stuff for the thingy 2012-12-15 22:30:16 -05:00
Christian 16651d6994 Remove old NEI/CCC compatibility code and other classloading tweaks 2012-12-15 20:40:08 -05:00
Uristqwerty 47281f2de1 Simplify logic in tick start/end
Change the EnumSet equivalent of "A &= ~ new(~B)" to "A &= B".
This eliminates the need for one temporary object in a frequently called loop, and reduces the number of methods that need to be invoked.
2012-12-14 04:14:17 -05:00
LexManos 70b9cd6e1f Fix var name messup 2012-12-13 00:22:30 -08:00
LexManos 60b6913a87 Update released eclipse project to link BouncyCastle 2012-12-12 23:44:28 -08:00
Christian 1dcf3bfbdc Change ID management slightly. IDs are tracked by block type for itemblock items now. This means servers will need to update.
Also, ordinal rearrangements within a mod will no longer trigger server disconnection, though a warning will still be logged.
2012-12-12 19:31:05 -05:00
Christian d13187d689 Fix possible escape leakage.. 2012-12-12 19:31:05 -05:00
LexManos 238dcdd18d More robust eclipse workspace replacement 2012-12-12 14:31:07 -08:00
LexManos 1812016e29 Kill decompile if astyle is not found and set execution bits on mcp .sh files and astyle-osx 2012-12-11 21:47:45 -08:00
Christian 55dc3467de Change to download bouncy castle as well. We also finally properly use the downloaded libs
even in vanilla code!
2012-12-11 22:37:07 -05:00
Christian 229a501def Remove extraneous patch file 2012-12-11 20:37:12 -05:00
Christian 64226c3d7e Merge branch 'repackage'
Conflicts:
	build.xml
	client/cpw/mods/fml/client/FMLClientHandler.java
	client/cpw/mods/fml/client/GuiIdMismatchScreen.java
	common/cpw/mods/fml/common/FMLCommonHandler.java
	common/cpw/mods/fml/common/IFMLSidedHandler.java
	common/cpw/mods/fml/common/network/ModIdMapPacket.java
	common/cpw/mods/fml/common/network/ModListResponsePacket.java
	common/cpw/mods/fml/common/registry/GameData.java
	common/cpw/mods/fml/common/registry/GameRegistry.java
	common/cpw/mods/fml/common/registry/ItemData.java
	common/cpw/mods/fml/common/registry/LanguageRegistry.java
	common/cpw/mods/fml/server/FMLServerHandler.java
	install/fml.py
	patches/minecraft/net/minecraft/client/Minecraft.java.patch
	patches/minecraft/net/minecraft/server/MinecraftServer.java.patch
	patches/minecraft/net/minecraft/world/storage/SaveHandler.java.patch
2012-12-11 14:58:38 -05:00
Christian f97b330605 Merge branch 'repackage' of github.com:cpw/FML into repackage
Conflicts:
	common/cpw/mods/fml/common/registry/GameData.java
2012-12-11 14:49:23 -05:00
cpw 29348240fc Merge pull request #145 from pahimar/master
More logging of loading files in LanguageRegistry
2012-12-11 08:28:39 -08:00
pahimar 5ef0cbfc32 Update common/cpw/mods/fml/common/registry/LanguageRegistry.java
Add in logging of what file failed to be loaded
2012-12-11 11:27:05 -05:00
LexManos 65a8bbf9e7 Fix patches, rebased with HEAD 2012-12-10 15:37:48 -08:00
LexManos 9be4b14371 Remade python dist as 32-bit. 2012-12-10 15:26:15 -08:00
Christian 1c5b8ecb7b Fixing id map generation - should validate correctly now 2012-12-10 15:26:13 -08:00
LexManos 5753eb0738 Reenabled replacement of the eclipse folder. 2012-12-10 14:56:23 -08:00
LexManos 41e899dcea Remade python dist as 32-bit. 2012-12-10 14:56:05 -08:00
Christian aee1a3f24d Fixing id map generation - should validate correctly now 2012-12-09 22:24:16 -05:00
Christian 3f383e2dc6 Fix up idmap code 2012-12-09 22:01:13 -05:00
LexManos 5e0af1f2cb Some derp protection in the workspace copy. 2012-12-09 02:20:21 -08:00
LexManos 00bdb3dc0b Removed remaining references to src/common
Fixed eclipse workspace replacemnt on source dist
Cleanup some outputs
2012-12-09 02:10:28 -08:00
LexManos 3537fb7f21 Updated build script to not use the mcp common directory as it doesn't exist anymore. 2012-12-08 21:41:51 -08:00
LexManos 099b8259a6 Fished moving out the rest of the default packaged classes to aproperiate packages. Updated patches and code to reflect. 2012-12-08 21:41:16 -08:00
LexManos 21c66eaf98 Updated the update_packages script to support different mcp locations 2012-12-08 21:40:39 -08:00
LexManos 1742abb139 Update fml_marker.cfg, Minecraft is now runnable! 2012-12-08 20:25:29 -08:00
LexManos 804e597aca Update all imports for repackaging. Branch is compileable. 2012-12-08 20:21:03 -08:00
LexManos e63311b4d0 Some stragler patches 2012-12-08 19:34:35 -08:00
LexManos b02f93aeed Updated patches to new packages. 2012-12-08 19:33:29 -08:00
LexManos ded6b4667b Give new classes a distinct package to be moved from. 2012-12-08 17:50:14 -08:00
LexManos 2009c89bf7 Fixed 0.tree to actually refresh the workspace. 2012-12-08 17:35:11 -08:00
LexManos 3e1efdf05b Remerged branch, and updated dev eclipse workspace. 2012-12-08 17:08:51 -08:00
Christian f4070ff625 Add in storage, detection and validation of the ItemID array between client and server
and also for world saves. May help with item configuration issues.
2012-12-08 17:05:18 -08:00
Christian e6d66322fe Add a modid on the mods list, should make it easier to do things like forge chunkloading config 2012-12-08 16:46:47 -08:00
Christian 57fe3c475a Fix build eclipse extractor task 2012-12-08 16:46:46 -08:00
Christian bccad16ea6 Add in storage, detection and validation of the ItemID array between client and server
and also for world saves. May help with item configuration issues.
2012-12-07 01:52:16 -05:00
Christian d4b06fd4bc Add a modid on the mods list, should make it easier to do things like forge chunkloading config 2012-12-04 18:08:27 -05:00
Christian 7b7255013a Fix build eclipse extractor task 2012-12-04 18:04:45 -05:00
Christian 71044df76b Fix typo 2012-12-04 01:30:38 -05:00
Christian edb4e08b22 Merge branch 'master' into repackage
Conflicts:
	eclipse/Clean/.classpath
	eclipse/Clean/.project
	eclipse/FML/.classpath
	eclipse/FML/.project
	install/fml.py
2012-12-04 01:24:50 -05:00
Christian fa34555efa Try and make branch non-derpy 2012-12-03 23:47:23 -05:00
Christian 45583a7420 Try defaulting branch differently 2012-12-03 22:26:12 -05:00
Christian e8ff9f25d9 Remove old eclipse workspace and ship/extract as a zip file (use ant setupenvironment)
Fix up install.py for forge multibranch changes
2012-12-03 19:55:37 -05:00
LexManos 61a90e9e74 Assume Forge is the parent directory when checking for AT configs. 2012-12-03 16:53:03 -08:00
Christian 9cdbadb66c Merge branch 'master' into repackage
Conflicts:
	patches/minecraft/net/minecraft/client/EntityFX.java.patch
2012-12-03 17:31:29 -05:00
Christian 6fdf5960ef Name both zips the same format 2012-12-03 08:38:20 -05:00
Christian 329fe50b1d Last part of branch name only please 2012-12-03 08:30:44 -05:00
Christian 461173a778 Try and get a valid branch name on jenkins 2012-12-03 08:23:21 -05:00
Christian 16418dd7ad Clean up build.xml script- support outputting a branched jar file 2012-12-03 08:13:20 -05:00
LexManos e334a469fb Small derp in install.py 2012-12-02 20:26:36 -08:00
LexManos d583a760ec Try marking python as binary. 2012-12-02 20:19:55 -08:00
LexManos c584d4e3db FML will now attempt to download MCP as part of the install process
Now shipping a py2exe version of python for windows.
Linux/Macs should come with python pre-installed so they do not have a distrabution here.
2012-12-02 19:59:22 -08:00
LexManos 5cf07b008e Windows Python distrabution created using py2exe, thanks Fesh0r for the script. 2012-12-02 19:56:17 -08:00
LexManos adad5c96cf Marked more spots in gui/items bitmask as being free. 2012-11-21 15:58:04 -08:00
LexManos 10cdc06cc3 Delete duplicate file 2012-11-20 18:07:39 -08:00
LexManos 78ff6182fe Finished repackaging net.minecraft.* net.minecraft.client is left 2012-11-20 17:58:22 -08:00
LexManos 7fb23bf89f More re-packaging, got most classes out of the default package. 2012-11-20 17:22:55 -08:00
Christian 25a10d6fc4 Fix up MCP version 2012-11-20 08:47:14 -05:00
Christian 389608116f Merge joined.exc add update howto 2012-11-20 08:38:33 -05:00
Christian f74b8ac30b Revert "Fix MC-2497 - derpy torch flames. Moved from forge. Everyone should benefit."
This reverts commit fa567014a5.
2012-11-20 08:27:13 -05:00
LexManos 554d86f59b Remove common folder from projects 2012-11-20 03:15:45 -08:00
LexManos f75bf90e77 Move IBossDisplayData to shared 2012-11-20 03:15:16 -08:00
LexManos 8b1ed2d255 First half of new patches 2012-11-20 03:15:01 -08:00
LexManos 586807c2c8 Update FML imports 2012-11-20 03:14:36 -08:00
LexManos 73a22bb571 Inital script side commit for MC source repackaging done. 2012-11-20 01:55:41 -08:00
LexManos 397d36e900 Modified merger to just consider all server classes as common. And moved the defnition of CodecMus to the config. 2012-11-19 17:45:53 -08:00
LexManos 745b697779 Forgot mcp.cfg 2012-11-19 15:47:18 -08:00
LexManos 950154aa61 Updated to 1.4.5b 2012-11-19 15:35:08 -08:00
LexManos 5e5919f61c Fix python error 2012-11-19 15:03:13 -08:00
LexManos 786b04c57d Modified decompile so that we do not have to decompile the server, saves time. 2012-11-19 15:01:04 -08:00
LexManos 72938c9133 Cleaned up some tabs 2012-11-19 15:00:11 -08:00
LexManos f842aa75bb Change usage of ZipFile, fixes issues with Mac's default instation of python. Also cleaned the python a little bit. 2012-11-19 13:33:22 -08:00
Christian 02b6904843 Attempt to fix a possible comodification risk 2012-11-18 20:40:48 -05:00
Christian 8025bf3a2c Change texturebinding to use the textureId directly rather than iconIndex
to determine if it needs to rebind the texture sheet
2012-11-18 08:45:25 -05:00
Christian 0340719ca2 Fix mod display list. Shouldn't be derpy anymore. 2012-11-17 23:51:14 -05:00
Christian c445ab004b Fix World patch- workaround no longer required and leftovers are bad. 2012-11-17 23:44:53 -05:00
LexManos 8d26642a84 Cleaned up the AT config updater, should work for any setup of the MCP workspace now. 2012-11-17 19:08:47 -08:00
Christian 783926194e Fix MC-2497 - derpy torch flames. Moved from forge. Everyone should benefit. 2012-11-16 22:50:21 -05:00
Christian e8c5b0791f Fix an NPE in TileEntity trying to generate a crash report. Make suspicious classes just return the obvious.
Fix NPE for FML crash report on server. Clean up dead patches.
2012-11-16 22:50:00 -05:00
Christian 1c9b59b405 Clean up a patch 2012-11-16 16:49:44 -05:00
Christian 719f5f2bde Update FML for MC 1.4.5 2012-11-16 16:31:06 -05:00
LexManos 6191f2530c Fix for ModLoader static overrides not displaying. 2012-11-15 14:08:41 -08:00
Christian 8a40e72f90 Fix up derpy file name handling: closes #127
Fix up duping childmods: closes #126
FMLPreinitializationEvent now offers a getLogger() that'll return your mod a personalized logger instance
2012-11-12 17:54:21 -05:00
LexManos 5355348181 Fix spelling issue. 2012-11-08 21:01:31 -08:00
LexManos 4e2f04c48a FML setup should now download and verify all the minecraft files needed to run MCP. 2012-11-08 17:54:05 -08:00
Christian 96971abe13 Small fix to some MCP metadata for pre2 2012-11-08 20:34:45 -05:00
Christian 3dbe774ec1 Update to MC 1.4.4 2012-11-08 17:55:20 -05:00
Christian 27aa35aa17 Fix bug when a modloader mod is run on a dedicated server and has a
connection handler assigned to it. Hi SmartMoving! Perhaps you should try
@Mod instead of BaseMod?
2012-11-04 10:57:49 -05:00
Christian 9c3b07f53a Clean up some patch fuzz 2012-11-02 17:32:39 -04:00
Christian c2350be4a7 Update joined.exc file from latest conf 2012-11-02 17:23:54 -04:00
Christian 8ec0cf6ab9 Update to 1.4.3 2012-11-01 23:53:13 -04:00
Christian 1a11b9c0e6 A useful tool for performing updates 2012-11-01 23:11:21 -04:00
Christian 448b85ceeb FUUUUUU! Stupid ticking. STOP REGISTERING TICK HANDLERS IN YOUR CONSTRUCTORS.
I'm looking at you Rei's!
2012-11-01 10:51:17 -04:00
Christian 92010b5bca Patch a file handle leak in RegionFileCache handling when under memory pressure. 2012-10-31 22:58:01 -04:00
LexManos 30db9154b2 Update MCP mapings again, yay bad syncs. 2012-10-31 09:23:17 -07:00
LexManos ac41e0928e Updated MCP mapings. 2012-10-31 07:40:53 -07:00
LexManos 755cceb5cb StartServer is now useable in merged code base. 2012-10-31 07:40:40 -07:00
Christian 771c818cd4 Remove some debug, closes #123 2012-10-30 21:53:08 -04:00
Christian 17d1f1f157 Fix up tick management outside of mod loading phases for ModLoader mods. 2012-10-30 21:47:06 -04:00
Christian 5197e98fb1 Negatively cache failed class lookups, should help with @SideOnly performance issues. 2012-10-30 21:17:17 -04:00
Christian 1bd53fe75f Fix some whitespace issues, handle possibly bugged entities as well 2012-10-30 09:13:18 -04:00
Christian 01048c704b Vanilla/mod bug fixes: CME on entity processing, TileEntity resetting chunk on save/load. 2012-10-29 17:41:08 -04:00
Christian dd011e16d2 Support for ModLoader 1.4.2. Good job Risu! 2012-10-28 23:55:58 -04:00
Christian 463514fbbe Add in an exclusion list tag for @Mod. The backend code isn't yet implemented, but shows the basic idea. 2012-10-27 15:13:28 -04:00
Christian 5115306e76 Fix a small problem with the new MCP container- it can cause NPEs. Nice. 2012-10-26 07:55:23 -04:00
Christian 1a31cd0886 Fix up some javadoc complaints 2012-10-25 16:18:42 -04:00
Christian f7403a509f Update build - include MCP information in the source pack 2012-10-25 10:00:34 -04:00
Christian c2f4738c8c MCP deserves lots of credit. So here it is. 2012-10-25 09:02:49 -04:00
Christian 8a6680f9c7 Fix instantiation bug 2012-10-24 21:58:36 -04:00
Christian a72f6b1eff Simple InterMod comms. Send a message using FMLInterModComms.sendMessage(). Receive messages through an @IMCCallback 2012-10-24 16:39:55 -04:00
Christian 39d6ef64c2 Update for MC 1.4.2 2012-10-24 15:12:06 -04:00
Christian f9db650310 Duplicate Mod display screen. 2012-10-24 09:41:46 -04:00
Christian 4d620ade3e Fix typo in access transformer 2012-10-23 21:21:28 -04:00
Christian fc0fc0cc75 Fix the merge for forge 2012-10-23 18:36:05 -04:00
Christian a3e71f4016 Fix up references to minecraftDir in obf code 2012-10-23 18:10:06 -04:00
Christian 6e8902da86 Update FML for Minecraft 1.4.1 2012-10-23 18:00:33 -04:00
LexManos 37697d7f44 First update to 1.4.1, patches need updating. 2012-10-23 14:44:04 -07:00
LexManos 54f5225530 Add some null checks, and throw descriptive exception when SideTransformer prevents a class from loading. 2012-10-23 13:32:02 -07:00
Christian 190c71eeb5 Ship a client only class so the merge works both sides. 2012-10-21 22:50:20 -04:00
Christian b88f2e6938 Fix RenderRegistry render ID - now at 36
Fix SpriteMaps - they're running out fast! Switch to forge if you can!
RenderBiped now has an armorlist- so armortypes add to it as well
2012-10-21 12:41:53 -04:00
Christian 8af47f2bb9 Fix up FML python script for forge 2012-10-21 08:19:36 -04:00
Christian bdb8a7c059 Update to MCP pre 3. Fixes some weirdnesses with explosions. 2012-10-21 07:11:09 -04:00
Christian 76be826ffb Merge branch '1.4' 2012-10-20 18:07:22 -04:00
Christian 2fcea16485 Update for MCP release 2012-10-20 18:02:26 -04:00
Christian 698f0e69eb Remove fuzz from patches for INetworkManager change 2012-10-20 17:16:50 -04:00
Christian 8ce9b05d8b Fix for new names INetworkManager and ITexturePack. I also provide refactoring scripts for both, for your use... 2012-10-20 17:07:59 -04:00
Christian c7002207fb Add a script to ignore git complaining about the eclipse workspace changing - run when you first open the eclipse workspace 2012-10-20 15:24:05 -04:00
Christian fabc324487 Update gitignore - ignore the files that will change or be deleted 2012-10-20 15:14:06 -04:00
Christian 1a3c19430c Add in "starter" image for eclipse workspace 2012-10-20 15:02:37 -04:00
Christian 6c48db441c Eclipse workspace fixup 2? 2012-10-20 14:42:25 -04:00
Christian 75fa0f2bdb Clean up eclipse workspace- part 1 2012-10-20 14:09:44 -04:00
Christian 279b5d5e23 Clean up a bit of patch fuzz 2012-10-20 12:39:40 -04:00
Christian 7da5727e3e Fix CommonHandler for rename of the server thread class 2012-10-20 12:31:35 -04:00
Christian 59738c493a Update with RC2 MCP. Use the joined.exc file directly since MCP now provides it. 2012-10-20 12:27:30 -04:00
Christian 70c342908f Fix exception for CodecMus 2012-10-20 12:12:43 -04:00
Christian 7ac53b4772 Fix some compilation issues. Requires resolving the worldclient abstract method 2012-10-20 11:30:01 -04:00
LexManos ce847a7c53 Inital patch update to 1.4 2012-10-20 02:43:03 -07:00
LexManos 7afbc1ab93 Moved into EntityVillager 2012-10-20 02:42:34 -07:00
LexManos 2028b0aa7f Fix line ending detection during checkout. 2012-10-20 02:32:29 -07:00
LexManos f59de49682 We don't need logging here... 2012-10-20 02:27:26 -07:00
LexManos ed3f7c14e3 remove useless -Server projects 2012-10-20 00:43:02 -07:00
LexManos 528670d103 Updated the AT config and Marker config for 1.4 obf 2012-10-20 00:36:33 -07:00
LexManos c106909d91 Updae build to copy files that may decompile differently but are actually the same, and updated for 1.4 values. 2012-10-20 00:06:55 -07:00
LexManos 671892fd32 Update MCP Merge config. 2012-10-19 23:57:49 -07:00
LexManos 7fcdb47edb Pull in MCP's 1.4 conf files. 2012-10-19 23:57:05 -07:00
LexManos ecf14df030 Fix error in merging of exec's 2012-10-19 21:14:03 -07:00
Christian 9b1375f536 Update build.xml - add a classpath to the manifest. This means the universal jar is now a server side launcher. 2012-10-18 21:07:33 -04:00
Christian ce138ec571 Typos! 2012-10-18 21:00:58 -04:00
Christian 5b4de7b2b5 Try and avoid an NPE in crash reports 2012-10-18 14:41:32 -04:00
Christian 3599c11599 Fix logging problems- log death messages and re-route the server through FML logs properly. 2012-10-17 18:05:23 -04:00
Christian 4af51b0cad Fix the test mod 2012-10-16 13:24:29 -04:00
Christian 4c39831d2b Coremods can be specified via the command line: fml.coreMod.load=<listofcommaseparatedclasses> This will help with developing coremods 2012-10-16 13:21:10 -04:00
Christian 4aced4ae02 Fix classpath for server 2012-10-16 12:40:01 -04:00
Christian 7327ea75f7 Add in the ability for a client to throw a custom exception that displays a custom gui instead of the default error message. 2012-10-16 12:39:04 -04:00
Christian a82285964f Update FML internal classpath. Helpful for coremod devs 2012-10-16 09:47:06 -04:00
Christian e770c87084 Don't use File to separate the last element of the path. It's a URL, they're always separated by '/' 2012-10-16 09:46:08 -04:00
keepcalm 924425074f Changed RelauchLibraryManager so that files with different paths on the
same baseURL can be implemented in one ILibrarySet.
2012-10-16 09:46:08 -04:00
Christian c0795e9bee FML as a whole is now subject to transformers. 2012-10-16 09:20:30 -04:00
Christian 4f0ddca554 Bonus extra character. thanks randomitter! 2012-10-16 09:06:13 -04:00
cpw abc651d618 Merge pull request #116 from Vazkii/patch-1
Add Null check to FMLClientHandler.sendPacket
2012-10-07 10:45:22 -07:00
Vazkii f2e4e20f35 Add Null check to FMLClientHandler.sendPacket 2012-10-05 17:36:52 +02:00
Christian 124f47f55c Update patches *sigh* 2012-10-02 22:04:25 -04:00
Christian 550e622bc7 Add in a savehandler strategy for reading and writing data to the
world save. This service is only available to coremods via the
WorldAccessContainer interface on the mod wrapper. This is deliberate
and will not change.
2012-10-02 21:54:47 -04:00
Christian a554846e57 Add in some bukkit supporting code. Most of this is unimplemented
until the bukkit coremod is complete.
2012-10-02 20:26:47 -04:00
Christian 0ed0d284b5 New stuff on the ModLoader! Risu has been busy. Closes #114 2012-10-02 08:29:12 -04:00
Christian 9a8a38d345 Mods can now declare a range of minecraft versions they will run against 2012-10-02 01:29:46 -04:00
Christian 7cd5ae04f7 Fix maps supporting greater than byte() dimension sizing 2012-09-29 00:21:42 -04:00
Christian 639039dd18 Fix language registry additions, closes #113 2012-09-28 22:12:23 -04:00
cpw 52da67717f Merge pull request #112 from pahimar/master
Additonal Language Registry functionality
2012-09-26 21:57:53 -07:00
pahimar df7d2b7161 Added ability to query the Language Registry by key and language for specific localized text, as well as loading in localization text from a specific file/URL 2012-09-26 15:41:58 -04:00
Christian 7dbda77f10 Extreme headless mode is back! 2012-09-25 22:46:47 -04:00
Christian eb034416ae Fix parent child counts showing properly. Closes #107 thanks scott! 2012-09-25 19:00:36 -04:00
Christian d21bc1085c It's useMetadata, not usesMetadata. thanks myrathi and psx. closes #110 2012-09-25 18:57:42 -04:00
Christian 2bee777740 Fix random shuffling when manipulating biomes by using a LinkedHashSet to preserve iteration order. Closes #111 2012-09-25 18:54:46 -04:00
Christian b29aebf338 Try and fix the newline capture so consoles show on the server on windows again 2012-09-24 17:22:39 -04:00
Christian 37340b0f80 Readd ancient searge name so dan200 and computercraft can run again. REMOVE THAT CODE DAN. 2012-09-24 17:22:16 -04:00
Christian 98151df96b Fix missing import. Thanks ichun :( 2012-09-21 18:17:56 -04:00
Christian f73d283341 Version file searching should work for directories too 2012-09-21 17:39:52 -04:00
Christian cb2535fa95 Fix bug causing NPE if non-whitelisted player joins an FML server without FML installed 2012-09-21 10:12:39 -04:00
cpw d1458c594e Merge pull request #103 from iChun/patch-2
Fixed ModTextureAnimation not updating and not binding to correct image.
2012-09-19 05:12:04 -07:00
iChun efb0e73df9 Fixed ModTextureAnimation not updating and not binding to correct image. 2012-09-17 23:46:09 +08:00
Christian a837d82e68 Tidy code 2012-09-16 21:44:11 -04:00
Christian 9b081b9d46 Change version.properties search slightly, allow access to found file from the preinit event 2012-09-16 21:42:59 -04:00
Christian 83a57f5259 Add in the capability to read an internal version as <modid>.version from a file
in the zip call version.properties. Handy for autobuilding scripts.
2012-09-16 21:05:56 -04:00
Christian e619e00079 Fix up reversed assignment for version fallback 2012-09-16 21:05:56 -04:00
LexManos 8f0b7c05fe Fixup Item in hand rendering of textures > 16x 2012-09-15 18:24:27 -07:00
LexManos b404f294c5 Make the exception print for headless servers if the Downloader cant initalize. 2012-09-15 18:06:59 -07:00
LexManos 48d12444c0 Remove a bunch of warning about javadoc, not a real fix, but no more warning. 2012-09-15 18:04:56 -07:00
LexManos 82fba4bfaa Update MCP Mapings 2012-09-15 17:09:45 -07:00
LexManos ec2a59bde8 Makes GetModSrc check the common folder when attempting to extract source files 2012-09-15 17:09:34 -07:00
Christian 149a626e5a Tie parent/child containers together again. Should close #96 2012-09-15 15:58:20 -04:00
Christian 9cd4ed0c91 Village mating produces added villagers, and the egg should place
added villagers too. Closes #97.
2012-09-15 15:49:08 -04:00
Christian 09558e9e15 Clean up stale references to the Player stored in the NetworkRegistry,
closes #100
2012-09-15 15:36:26 -04:00
cpw 23c89ec054 Merge pull request #99 from CovertJaguar/patch-1
More readable state event logs
2012-09-15 12:20:26 -07:00
CovertJaguar 13756b6f2c More readable init logs 2012-09-14 00:47:48 -07:00
Christian 0de240c4fe Fix onConnectionClosed not being called on the client side of a connection 2012-09-09 11:29:08 -04:00
Christian 74343a0cff Add in exclusion list for IFMLLoadingPlugin. 2012-09-08 12:19:03 -04:00
Christian 3461c12d95 Remove debug cruft 2012-09-07 23:14:54 -04:00
Christian 67d8b3b475 To properly align with packet9respawn, make packet1login's dimension an int as well 2012-09-07 22:57:01 -04:00
Christian ab34f2d2cf Attempt to build some protocol negotiation, and fix packet1login so that the dimension is a short, matching packet9respawn 2012-09-07 22:46:31 -04:00
Christian c4d5c89f85 Compatibility level is now passed from server to client - and
the client tracks it. This means certain packet changes can be made
without breaking comms, hopefully
2012-09-07 19:32:36 -04:00
Christian 67b9fbe363 Fix dependency checking: you can depend on specific versions of FML 2012-09-07 19:08:28 -04:00
cpw 75c0e65092 Merge pull request #94 from iChun/patch-1
Fix handleTinyPacket using short instead of int.
2012-09-07 05:43:39 -07:00
iChun 7a0ab7e563 Fix handleTinyPacket using short instead of int.
Silly cpw :P
2012-09-07 18:35:26 +08:00
Christian e564610b54 Fix up tiny packet handler to actually work 2012-09-06 22:59:38 -04:00
Christian 94d076a14a Allow javax to be shipped by mods. Should allow some more modloader mods to work
unaltered
2012-09-06 22:03:02 -04:00
Christian d2e99c3443 Add in a little bit of protocol cleanup. Start work on allowing multiple
protocol versions
2012-09-06 21:54:43 -04:00
Christian 45bbdd14d6 Give a way to build the packet131mapdata packet correctly populated 2012-09-06 10:12:37 -04:00
Christian 8b8d9a58f6 Capture and leverage Packet131MapData 2012-09-06 10:03:30 -04:00
Christian 50c74f93bd Make console logging pass through a single logging thread to avoid concurrency problems with launchers and stuff 2012-09-04 19:11:45 -04:00
Christian 6d9b9fde47 Overlooked chat message support *sigh*. Fixes wierd mods that communicate through custom
chat messages rather than anything else. Hi Superior enchanting!
2012-09-04 12:37:59 -04:00
Christian 7a58542fb8 Rescan mod packages where there was a possible mod identified to try and make sure we load it. Fixes Matmos r16 2012-09-04 11:39:51 -04:00
Christian 61153abf7b And handle the other way to globally register an entity 2012-09-03 21:37:20 -04:00
Christian 788d1c9925 Fix up mods trying to register entities outside of modloading. Now you'll get a big fat warning for doing such a derpy thing. 2012-09-03 21:32:21 -04:00
Christian 6de655df47 Fix CJB mod compatibilty for real. Gui container registration can now happen in the constructor. YUK! 2012-09-03 21:14:11 -04:00
Christian 2af15b3a95 Fix compatibility with ModLoader dispenser hook. Fixes a bug with
IDispenseHandler too - though it means that interface is now
deprecated
2012-09-03 11:37:17 -04:00
Christian 5bea2a0bbd Fix headless operation, hopefully 2012-09-02 13:29:46 -04:00
Christian 599476d587 Fix up trying to re-add stuff to the classpath when it's already there 2012-09-02 12:56:08 -04:00
Christian d538dcf06f Fix out of range entity id handling for ModLoader mods a bit more. Thanks Herobrine mod! 2012-09-02 12:39:06 -04:00
Christian 6072420a02 Expose GuiMerchantButton 2012-09-02 12:15:13 -04:00
Christian 6056c760d4 Log a big fat warning for the developer in the case the network version
is not acceptable to the mod itself. (This can happen because of a bad range
specifier for example)
2012-08-31 23:41:29 -04:00
Christian 8f70ed5f33 Also, make missing entity not blow things up 2012-08-31 16:49:35 -04:00
Christian 17cbb9d3b7 Fix entity tracker "update" packet not computing correctly. Should work now.. 2012-08-31 16:41:05 -04:00
Christian bd137b7f06 Fix up addRenderer to catch exceptions from the basemod, also, addrenderer now supplies a list of the
default renderers from MC for editing and will note the changes made.
2012-08-31 11:18:17 -04:00
Christian befe8f5f47 Change download location for FML libraries to files.minecraftforge.net, add an encoding param to the javac command line to force utf 8 2012-08-31 11:18:17 -04:00
Christian 74d6437856 Add in random jar/zip files to the classpath. UGH this is so fucking ugly it's not funny. 2012-08-30 20:10:53 -04:00
Christian 93f9cc45f9 Use a null socket and try to prefer the result of getLocalHost in the broadcast data. 2012-08-29 16:12:40 -04:00
Christian ece5483ad7 Add in an ItemRenderer null check so FML can run render adding mods 2012-08-29 13:58:56 -04:00
Christian 8df9a051d6 Inverted boolean logic. Grrr. 2012-08-29 13:44:40 -04:00
Christian 81a8e94c79 ModLoader mob spawns use packet 24- build a bypass system so that
they can still use it
2012-08-29 12:58:16 -04:00
Christian 3415dbfd0d Remove debug statements 2012-08-28 23:07:37 -04:00
Christian 3b0c0fcecf Fix keybindings not loading properly from gamesettings file after restart 2012-08-28 22:15:18 -04:00
Christian 62a7d347e7 Fix so we always send received packets to handlers.
Renders 250 filtering useless unless i can figure a way to intercept *outbound* packets that isn't as messy as I'm
contemplating
2012-08-27 17:46:08 -04:00
Christian d105213aed Some tests 2012-08-26 22:23:05 -04:00
Christian 870214000f Fix trying to load the client side packet handler, when on the server, hopefully? 2012-08-26 22:18:57 -04:00
Christian 5a6275f0e1 Fix up network negotiation - now it will disconnect with a nice
error screen if there are missing mods on the client vs server
2012-08-26 22:13:43 -04:00
Christian b32dea398b Fix missing addCommand call: thanks "spawnwolf test command" 2012-08-26 13:07:35 -04:00
Christian 4b371d8d5b Fix a couple of modloader mods. Thanks! 2012-08-26 12:52:50 -04:00
Christian 85a585725b Some functionality fixes for @Instance injection. 2012-08-26 10:55:55 -04:00
Christian fe73f11443 Versions now have two flavours: the @Mod(version) which is the "programmatic version" and
is used for all version relationship calculation. The "display version" as sourced from
mcmod.info is used for display purposes only and can be literally anything. Note: they fall back
to one another when they're missing, and to "1.0" if both are absent.

Also, changed @Instance. Now, you can inject *other* mods using @Instance as long as you depend
on them as a "before" or "dependency" relationship. Classes containing @Instance will only be
loaded if the Mod the @Instance refers is present. So you don't have to worry about runtime class
resolution.
2012-08-26 10:45:00 -04:00
Christian a0302861cf Always for ML mods into "public" class accessibility - we don't call from the default package like ML does. 2012-08-25 21:57:25 -04:00
Christian 1da6a1fc6c Add in a convenience method for getting a class instance based on
existence of another Mod. Useful for soft dependencies.
2012-08-25 21:26:41 -04:00
Christian b308be04e7 And more mod sorting fixes. 2012-08-24 12:10:43 -04:00
Christian 67fa435dd4 Actually *use* the sorted mod list 2012-08-24 11:58:18 -04:00
cpw 82551503bd Merge pull request #82 from Chicken-Bones/master
The access transformer will now handle classes in packages.
2012-08-23 16:47:13 -07:00
Chicken Bones 542219112a The access transformer will now handle classes in packages.
Eg.

public net/minecraft/client/Minecraft.T #timer
2012-08-24 08:09:10 +10:00
Christian 6657b6561b Reverse the meaning of state in fml.modStates system property and fmlModState.properties - it was very
derpy before. Now: true is enabled, false is disabled, as you would expect
2012-08-23 17:37:44 -04:00
Christian 02792c45e6 Actually fix the corrupt JSON problem 2012-08-23 17:27:53 -04:00
Christian 4f6861ee50 Fix isModLoaded for "disabled" mods, and the toposort as well 2012-08-23 17:08:18 -04:00
Christian 1870b7d793 A bit more information for dependency handling 2012-08-23 16:46:23 -04:00
Christian c465b17afe Fix up handing corrupt mcmod.info 2012-08-23 16:43:28 -04:00
Christian 72097d5bf5 Fix a problem with network ids 2012-08-23 16:38:34 -04:00
Christian 87fa59b0f7 Fix up version handling properly. Hopefully, and the error screen. 2012-08-23 15:29:17 -04:00
Christian 675f4115aa Only active mods should have dependencies checked, and be sorted 2012-08-23 14:33:54 -04:00
Christian e7c6a47951 Fix oddity with Screen, print a version out in the sorted list! 2012-08-23 14:28:49 -04:00
Christian 9974f7a6d5 Fix metadata 2012-08-23 14:05:17 -04:00
Christian 4b6b090712 Fix up versioned dependencies so they work a lot better, also add in a missing mods screen 2012-08-23 13:43:25 -04:00
Christian e6dce6cdbc Fix missing serverSendPacket 2012-08-23 09:02:12 -04:00
Christian e37b40dac9 Trading support for ModLoader - thanks Herblore! 2012-08-23 01:40:03 -04:00
Christian 4e8668c922 Close the jar, for cleanliness sake 2012-08-23 01:39:35 -04:00
Christian 12f66bdc86 Fix authors - it'll read both "authors" and "authorList" from the json now 2012-08-23 01:17:47 -04:00
Christian 346661cc6b More ML compatibility - fix up dragon mounts, thanks! 2012-08-23 00:37:45 -04:00
Christian fe0d081eec Fix up loading mods that are grandchildren of BaseMod 2012-08-23 00:04:34 -04:00
Christian 0ae888e8f8 Fix entity handling for ModLoader mods, thanks parachute mod! 2012-08-22 23:46:16 -04:00
Christian 213cc63eca Merge ChickenBones pull into FML - adds player trackers 2012-08-22 18:00:55 -04:00
Christian 908a57f3c4 Fix formatting 2012-08-22 18:00:38 -04:00
Christian 8f6883da8e Tweak patches and hooks slightly 2012-08-22 17:58:46 -04:00
Christian 9bfa7acf0d More precise error handling when an invalid class is present 2012-08-22 17:50:07 -04:00
Christian af104b81f2 Fix textures not applying properly 2012-08-22 17:50:07 -04:00
Christian 5233ae520d Fix up entity spawning - hopefully they won't warp anymore. 2012-08-22 17:50:07 -04:00
Christian d544e56ec3 Add in a helper on the server start event for adding commands to
the server.
2012-08-22 17:50:07 -04:00
Christian be7b413bec Move villager trading hook up a bit. thanks sengir. 2012-08-22 17:50:07 -04:00
Christian 550c206997 Fix LAN to try hard to find a real network interface, not just localhost
most of the time
2012-08-22 17:50:07 -04:00
Christian 5330afb78e Update build to not bother building client jar. Universal is everything
now.
2012-08-22 17:50:07 -04:00
Christian ebc1aea5d2 Null protection for ticks() -- probably should uses EnumSet.noneOf() but
you can also use null now to stop ticking. closes #77
2012-08-22 17:50:07 -04:00
Christian f0d5732477 More precise error handling when an invalid class is present 2012-08-22 17:36:26 -04:00
Christian 4d44836bb3 Fix textures not applying properly 2012-08-22 17:27:06 -04:00
Chicken Bones fe263206e2 FML will now search '<mcpdir>/forge/accesstransformers' for user defined access transformer config files to be applied during forge setup 2012-08-23 06:31:00 +10:00
Chicken Bones 0806bc7b22 Added IPlayerTracker hooks 2012-08-23 06:28:53 +10:00
Christian e713f7b1c2 Fix up entity spawning - hopefully they won't warp anymore. 2012-08-22 15:11:59 -04:00
Christian 252f3a5a92 Add in a helper on the server start event for adding commands to
the server.
2012-08-22 15:11:43 -04:00
Christian 1720382475 Move villager trading hook up a bit. thanks sengir. 2012-08-22 11:50:03 -04:00
Christian 7ff1e60af9 Fix LAN to try hard to find a real network interface, not just localhost
most of the time
2012-08-22 11:48:30 -04:00
Christian 09fe35d43c Update build to not bother building client jar. Universal is everything
now.
2012-08-22 11:12:26 -04:00
Christian f9332bab3a Null protection for ticks() -- probably should uses EnumSet.noneOf() but
you can also use null now to stop ticking. closes #77
2012-08-22 09:43:32 -04:00
Christian 5d59af0cec Automatic mod entity registration into the global entity list. This might break
entity code out there, sorry, but this way for most entities you no longer
need to manage the global mod entity stuff at all. just remove it. FML will
take care of the rest (note, worlds won't load the old entities)
2012-08-21 19:34:33 -04:00
Christian d27e722903 Add in a utility function that *might* tell you the context
you're running in on either client or server: FMLCommonHandler.getEffectiveSide
2012-08-21 19:15:07 -04:00
Christian ba16217fe2 Try and stop sendPacketToAllAround from being crashy 2012-08-21 18:50:26 -04:00
Christian 63e8249040 Mods can add mod specific crash information to the crash report now
Forge needs to implement MinecraftForge.getCrashCallable
2012-08-21 18:48:12 -04:00
Christian a17396eca5 Fix up dispenser handling, add in new params for the dispenser: breaks IDispenseHandler, sorry 2012-08-20 21:44:54 -04:00
Christian ab90aa4d99 Fix up MLProp handling for null info 2012-08-20 21:44:47 -04:00
Christian b8a30cec94 GUIs working in FML for ML mods 2012-08-20 21:44:28 -04:00
Christian bb98ae9e28 Support gui opening for Shelf mod 2012-08-20 21:43:59 -04:00
LexManos 85e3c330e7 Updated MCPMerger to annotate unique classes with there sides, and SideTransformer to null out any class that is loaded on the wrong side. 2012-08-19 22:26:52 -07:00
Christian 45175c0e94 Expose more of the village construction parts for building village
pieces
2012-08-19 11:23:29 -04:00
Christian 52d3f237af Allow access to the type "ComponentVillage" 2012-08-19 10:35:06 -04:00
Christian 09c7ea2d9d Documentation and registration for villager stuff 2012-08-19 10:30:24 -04:00
Christian 3a0ad876b5 Fix javadoc derp 2012-08-19 10:21:19 -04:00
Christian 8a521c1d32 Villager trading, manipulation and village enhancement. Still WIP but should be functional 2012-08-19 10:13:15 -04:00
Christian b07f1069b9 Fix exception based logging to actually log the exception! 2012-08-19 09:31:26 -04:00
Christian 3e94ee2c36 Fix up keyboard events for modloader 2012-08-19 01:44:33 -04:00
Christian a1385f4797 Pickup notification 2012-08-19 00:26:55 -04:00
Christian ce276375b2 Update fml_at with new transforms 2012-08-18 20:08:27 -04:00
Christian 9a540ef6d4 Fix derp where client sided packet handler would be created on a dedi server env 2012-08-18 19:50:46 -04:00
Christian f86a29468e Add in support for "dummy" keybindings- ones that are added to the list but never do anything
so the mod can handle it all themselves.
2012-08-18 10:24:29 -04:00
Christian b65a38cb30 Don't complain about minecraft source code being in "net.minecraft.src". Derp. 2012-08-18 10:09:53 -04:00
Christian 298d6db6e2 Fix ModLoader add XP Smelting 2012-08-18 10:09:25 -04:00
Christian 3d87561505 Actually register client/server packetspecs as their correct sides! fixes #71 2012-08-18 09:28:36 -04:00
Christian 1cbe058250 Error if channel name is invalid - either too short, or too long 2012-08-17 16:59:48 -04:00
Christian 8a679f6d9e Add a connect and read timeout for downloading libraries. This should really stop the "waiting forever" at startup screen. 2012-08-17 16:21:18 -04:00
Christian 0e473145b3 GIANT FAT WARNINGS if you use any code in net.minecraft.src or any subpackage thereof. Get it out of there, now! 2012-08-17 16:13:05 -04:00
Christian 73bf3a8985 Fix up ML GUI ticking. Thanks sharose! 2012-08-17 16:09:46 -04:00
Christian 5ea0932e24 Organize ALL the imports 2012-08-17 09:25:04 -04:00
Christian 290f2d6781 Expose the server in serverstart event 2012-08-17 09:25:04 -04:00
Christian 94f834d5d7 Fix up directory injection of log file locations 2012-08-17 09:25:04 -04:00
Christian 30d6970e77 Refer to FMLLog, not FMLRelaunchLog 2012-08-17 09:25:04 -04:00
Christian 8408f58fb1 Tidy up server launch - reflection not required anymore 2012-08-17 09:25:04 -04:00
Christian 0fab4eca7b Also, log what the directory discoverer finds for mcmod.info 2012-08-17 09:25:04 -04:00
Christian 549969ade6 And log the exception if it has a problem reading the jar file 2012-08-17 09:25:04 -04:00
Christian 26bb005731 Fix jar loader failing to inject any metadata at all if mcmod.info is not found. 2012-08-17 09:25:04 -04:00
LexManos 8444fa6d3c Change install.cmd to install.bat, why, cuz people are .... Updated readme to mention needing server and client. 2012-08-16 22:57:11 -07:00
Christian 11c1cae8b0 Some compatibility fixes for Rei's minimap, and tidy up a couple of things 2012-08-16 13:55:42 -04:00
Christian 4d87779d39 Fix Forge branding string call 2012-08-16 13:01:48 -04:00
Christian 1cc6778038 Update FML for mcp 72 final, change download location for FML files, and make the stop button work.
Hello is NOT going to go away :)
2012-08-16 12:22:56 -04:00
Christian a7a1f55091 Fix critical bug in FML load controller that complains about injected mod containers 2012-08-16 08:34:12 -04:00
Christian e1fd0b1d7b Handle the case where a mod tries to do something stateful during constructor phase, and log a big
fat message about it. Don't do it!
2012-08-15 20:05:12 -04:00
Christian 81512c3458 Small fixes, including showing the FULL name of Forge Mod Loader 2012-08-15 19:54:56 -04:00
Christian fcf6fd57ee Fix up null array in keybinding handler 2012-08-15 19:17:21 -04:00
Christian 7988323073 Actually add in the system property for the minecraft home, should fix multimc too 2012-08-15 19:16:36 -04:00
Christian ba902537ca Add in support for setting the home dir via the applet launch, also a system property for forcing the home dir 2012-08-15 17:18:11 -04:00
LexManos 96b78514a8 Cleanup fml.py a little, should fix double printing of 'patching file' 2012-08-15 03:10:45 -07:00
LexManos e0cb8cd503 Wrap mod description rendering in BLEND calls https://github.com/MinecraftForge/MinecraftForge/issues/96 2012-08-15 02:52:29 -07:00
LexManos 022b3e57dc Made getmodifiedsrc noop for server. 2012-08-15 00:50:40 -07:00
LexManos 9ad520cb2a Fix new eclipse workspace to load the project properly from start. 2012-08-15 00:50:16 -07:00
Christian c1e0cbb7f1 Merge branch 'minecraft132'
Yes, we are already on 1.3.2
2012-08-14 22:33:28 -04:00
Christian 071caee228 KeyBinding handler change: a handler now takes an array of keys and calls back with the
activated key. Sorry for the inconvenience but this improves the usability of this
API a lot
2012-08-14 22:32:19 -04:00
Christian 352df9cc30 Fix renderer's not getting the rendermanager set on them at registration time 2012-08-14 22:32:19 -04:00
LexManos eef3303dfe Finished update to MCP 7.2, MC 1.3.2 pre. 2012-08-14 19:24:49 -07:00
Christian 75fb35b240 KeyBinding handler change: a handler now takes an array of keys and calls back with the
activated key. Sorry for the inconvenience but this improves the usability of this
API a lot
2012-08-14 22:06:49 -04:00
Christian 04fc1c6c59 Fix renderer's not getting the rendermanager set on them at registration time 2012-08-14 21:59:47 -04:00
LexManos 646a0b4fc4 Fixup included workspace to have single project with client/server launches. 2012-08-14 17:42:40 -07:00
Christian 3d0bd2bc7a Start working on MC 1.3.2 2012-08-14 20:09:24 -04:00
Christian b69364e168 Add in a helper for code migrating from ML renderer stuff 2012-08-14 19:09:22 -04:00
Christian e856f6196a Merge pull request #62 from calclavia/patch-1
Shortcut function for addNameForObject()
2012-08-14 13:52:58 -07:00
calclavia 4c5dcb543f Shortcut function for addNameForObject()
Having that long line of code makes the code a bit ugly... Please make this shortcut function like ModLoader.addName() so I don't need to use ModLoader.addName(). :)
2012-08-15 04:45:32 +08:00
Christian a234fdf00b Handle mod duplicate detection much better. Default the name of a mod to it's id.
Fix up the block registry problem. Fix the packetsend from c->s actually being
"disconnect" :)
2012-08-14 13:36:29 -04:00
Christian 5f4423119a Fix entity spawn packets 2012-08-14 08:20:28 -04:00
LexManos d7dcbe7007 Force a Jenkins build 2012-08-14 01:21:56 -07:00
LexManos f98c252bcb Merge pull request #60 from remuladgryta/master
fixed 'derp' error on @NetworkMod
2012-08-14 01:16:29 -07:00
remuladgryta 438c8eca35 fixed java.lang.NoSuchMethodException
getServerHandlerSpecDefaultValue() and
getClientHandlerSpecDefaultValue() should no longer give derp exeption
2012-08-14 09:50:22 +03:00
LexManos f1a8b2ea72 FML will skip gathering MD5s for classes in the cpw package during the the inital recompile {Make Side/SideOnly reobf properly} 2012-08-13 21:53:52 -07:00
LexManos 908227ce0c Merge remote-tracking branch 'origin/master' 2012-08-13 21:05:14 -07:00
LexManos bbcdaa7dfb Updated FML install to provide better error output, Updated commands.py patch to disable recompile of server project. 2012-08-13 21:02:55 -07:00
Christian 6f10295936 Hopefully let build continue if server reobf fails, and fix derp in FMLNetworkHandler for entities 2012-08-13 23:25:08 -04:00
Christian a8f69529fd Fix up concurrent modification exception - ticks for players now occur on both sides 2012-08-13 22:55:23 -04:00
Christian 7de5191848 Merge the last bits of the server code into the common directory, and annotate ModLoader/BaseMod for sided use
This means the FML-Server project is now defunct as all code is either common, client or bukkit.
2012-08-13 22:51:53 -04:00
Christian 416cac675b Actually fix the applet launch - it now launches properly *and* closes the window 2012-08-13 22:12:36 -04:00
Christian 17bf8dc363 Fix up relaunch of the applet 2012-08-13 21:44:43 -04:00
Christian 466022b402 Change language loading a bit 2012-08-13 20:28:53 -04:00
Christian df9ec4bf3f Update spritehelper bitmaps for items and terrain 2012-08-13 20:08:03 -04:00
Christian fa38c1a6b3 Tidy up some APIs, expose the addOverride mechanism. This should be pluggable by forge
but may need work to allow for each mod to have it's own override set
2012-08-13 19:57:40 -04:00
Christian 6a273dd98f Fix derp in LanguageRegistry 2012-08-13 16:45:47 -04:00
Christian f41391b13c FMLModcontainer should not complain about annotations it has no idea about. so stfu fmlmodcontainer 2012-08-13 16:15:11 -04:00
Christian 179ed74456 Fix derp with EntityRegistry- bimap is not the right type for the name->container list 2012-08-13 15:55:24 -04:00
Christian deab31fb03 Add in a sided variant of the packethandlers in the annotation - also, a bit more
explicit warning on when to register blocks - if you do it after pre-init, you'll
reset the achievements
2012-08-13 15:26:29 -04:00
Christian c393299a91 Generate channel registration for client, also, do it before the login events so you can send packets 2012-08-13 11:58:44 -04:00
Christian 80b3f0fd97 Capture server packet handling errors into the FML log file for diagnostics 2012-08-13 11:52:30 -04:00
Christian 519d2365ca one more change for the road :) 2012-08-13 01:24:02 -04:00
Christian 71642f02f8 Don't spit debug all over the floor 2012-08-13 00:24:15 -04:00
Christian 0c3535ff26 updated conf, commands patch (missing newline?) and capturing the actual running
MC version and validating it at relaunch time is the correct MC version.
2012-08-13 00:17:34 -04:00
Christian 6f4dbd5376 Add in callableminecraftversion 2012-08-12 23:54:41 -04:00
Christian 9b74df5e62 Entity AI accessibility, also AccessTransformer can make certain classes public now 2012-08-12 23:50:27 -04:00
Christian 8d8f36bac0 Add in a simple packet dispatcher for sending packets around 2012-08-12 22:45:18 -04:00
Christian 8a0cfed5c6 Add in a sided packet registry so that client vs server can vary 2012-08-12 22:23:03 -04:00
Christian e229b6f6eb Fix double forge init on server 2012-08-12 20:34:23 -04:00
Christian 8a74a152e5 Merge pull request #50 from Krapht/master
Fix for getNextAvailableRenderId() returning ids in use by vanilla - thanks krapht!
2012-08-12 06:55:23 -07:00
Krapht c1dccae4b8 Fixed getNextAvailableRenderId() returning ids in use by vanilla 2012-08-12 14:45:03 +02:00
LexManos f73e4b6169 Fix MCPMerger injecting Side/SideOnly when it already exists. 2012-08-12 04:27:36 -07:00
LexManos 9777204547 Added patch verification to commands.py patch, and made it so MCP will check the original jars for the server, to prevent it from saying modified when it started out clean. 2012-08-12 02:49:39 -07:00
LexManos 0b343c1a49 Add DEBUG constant to Access/Side Transformers to remove spam when not needed. Also AccessTransformer and MCPMerger should return a error code when it can not process causing MCP to stop decompile. 2012-08-12 01:23:10 -07:00
Christian 4f7996e361 Fix EntityRegistry - mods can specify update frequency, range and velocity data, and also
patch EntityTracker to actually track FML entities
2012-08-12 00:18:04 -04:00
Christian 20029feb88 Fix NPE with no channels - always register FML 2012-08-12 00:17:07 -04:00
LexManos c4149f7b55 Added missing quotes around compile command. 2012-08-11 16:03:33 -07:00
Christian f20ef77a91 Fix up the network mod issue properly. Maintain a real cache of mod objects 2012-08-11 16:21:03 -04:00
Christian 6d79241652 Remove profiler stuff - it's been deeply reorged. I'll look at re-adding it later 2012-08-11 14:12:39 -04:00
Christian 4f9cc6b398 Fix up command patch to actually work 2012-08-11 14:12:23 -04:00
Christian 5a0d08b892 Fix commands.py to always include the two side classes so the fml jars are valid. 2012-08-11 14:01:27 -04:00
Christian 85f665dd1d Fix build script- put client in first 2012-08-11 13:05:37 -04:00
Christian 2d31dbba15 Put the marker on the server ML file too 2012-08-11 13:04:59 -04:00
Christian 938cecbdf7 Fix universal not to dupe entries in the jar, also add in the fml mod as "untransformable" 2012-08-11 12:34:25 -04:00
Christian 57de5c1b90 Fix up launch when obfuscated *sigh* 2012-08-11 12:24:43 -04:00
Christian 35fda10b50 Update netclienthandler patch. 2012-08-11 12:10:22 -04:00
Christian d663884aa5 Fix NPE for server relaunch 2012-08-11 12:05:13 -04:00
Christian ff18294591 Fix up Package.getPackage(), also fix up loadcontroller construction 2012-08-11 11:44:55 -04:00
Christian 3918c5e810 Add in Package.getPackage() support for sengir 2012-08-11 11:12:16 -04:00
Christian 92b7ed1182 Lost of work to try and complete ML support - probably still bits missing, but mostly there 2012-08-11 11:02:09 -04:00
LexManos 185f8ddbc7 Newlines in diff file 2012-08-11 02:27:19 -07:00
LexManos 953f99787e Add special case to add Side/SideOnly to difflist 2012-08-11 02:25:40 -07:00
Christian 7e35f13f30 Fix up some network related stuff and optimize mod lookup a bit 2012-08-11 02:43:04 -04:00
Christian 2e66429b03 Fix up proxy injector to inject properly 2012-08-11 02:24:29 -04:00
LexManos 1e4d788cd0 Fix decompile 2012-08-10 20:41:59 -07:00
Christian 7440cc89e9 Fix NPE on missing mods - still need to actually handle missing mods properly on client 2012-08-10 23:27:11 -04:00
Christian fde0619e9b New downloader UI and new downloader backend - should be more robust now 2012-08-10 23:18:52 -04:00
LexManos a1c14779d2 Added -no_gen_conf to jenkins build 2012-08-10 20:09:47 -07:00
LexManos 5a1f84ed5b Added some extra error prints, hopeully get something useful when installed in the client. 2012-08-10 18:54:06 -07:00
LexManos 49385961d9 Updated conf merger script to just merge everything, and normalize the line endings so git doesn't complain. 2012-08-10 18:25:11 -07:00
Christian dd319a2938 SidedProxy should work again - anywhere. Make sure it's on a static field though 2012-08-10 17:42:43 -04:00
Christian 7b2d09844c More ticking hooks, and some other bits of clean up. Very close to "done" now. 2012-08-10 17:11:01 -04:00
Christian b5dc18ff7e Fix up modloader and clean up junk method 2012-08-10 16:42:21 -04:00
Christian 5e7cb9106d A lot of missing patches to code re-added. Almost all functionality should now
be restored.

ModLoader compatibility is not yet assured, there are some wrapper classes that
need re-writing first
2012-08-10 16:39:03 -04:00
LexManos fcd4a8e854 Readded common folder to startclient/server. 2012-08-10 12:38:59 -07:00
Christian 1c189ae762 Add in a registration method for gui handlers 2012-08-10 11:12:57 -04:00
Christian a58306abc6 Overwrote lex's command patch 2012-08-10 10:57:18 -04:00
Christian 3c1b234a61 Fix up MCP merger - it definitely works now - the game runs and runs well.
Fix up a couple of small network related issues.
Fix up the server launching fml properly.
2012-08-10 10:03:33 -04:00
LexManos ba0cc6ec12 Added common folder support to startclient/startserver 2012-08-09 20:34:16 -07:00
LexManos 349da399ff Added some missing quotes that caused issues if your workspace had a space in it. 2012-08-09 20:01:51 -07:00
LexManos dca24fd567 Add lib folder to installed eclipse 2012-08-09 19:02:28 -07:00
Christian 6eb4bceee3 Add in missing patch - also, launch FML properly from the server 2012-08-09 09:21:16 -04:00
Christian 6d0f7ace17 Entity spawn adjustment - tracker 2012-08-09 08:40:32 -04:00
LexManos 859ebae365 Fix ModLoader compilation, and MCPmerger invocation for Forge. 2012-08-09 03:04:25 -07:00
LexManos 3d26511322 Include conf folder and merge config in source zip 2012-08-08 23:44:32 -07:00
Christian 185babbd85 Entity spawning - done 2012-08-09 01:58:14 -04:00
Christian d970f7a530 Generate a universal binary package since we can now :) 2012-08-09 01:57:42 -04:00
Christian 83fdb602e2 Merge branch 'MergingClientServer' 2012-08-08 22:58:33 -04:00
Christian c1bd11e64a Reorganized all the current patches 2012-08-08 22:57:37 -04:00
Christian c1b3bfd007 Fix up annotation parser to parse arrays and enums 2012-08-08 22:10:56 -04:00
LexManos 9b81775a2f Added SideTransformer to strip side only functions/fields out. 2012-08-08 18:53:41 -07:00
LexManos ac8945a4f8 Stage 1 of merging the client and server for MCP.
Results:
Client: 362
Server: 3 (Only due to issues of FF decompilation inconsistancies)
Common: 910

Stage 2: Write runtime transformer to remove annotated fields/methods with invalid side annotation.
2012-08-08 05:48:06 -07:00
Christian 77f4cc5bea Gui Handler ported from MC forge 2012-08-08 00:31:24 -04:00
Christian 8998d4c5e0 Revert dumb stuff with commands patch - lots of gfx patching 2012-08-07 23:11:37 -04:00
Christian 0ddf61cee2 Almost finished basic network stuff now 2012-08-07 20:41:37 -04:00
Christian 84efb72e46 Update some patches- more network work 2012-08-07 20:10:36 -04:00
Christian f4b9055171 Bunch of hooks re-added : network is more complete now, lot of basemod cleanup, moving stuff into
the registry area
2012-08-06 22:30:13 -04:00
Christian 12927291a7 Fix location of forge in common handler - also some tweaks to modloader and other stuff 2012-08-06 17:27:21 -04:00
Christian 73bdd512c5 Network support - there's still some work to do and full id sync isn't done yet, but it has proper registration
semantics and hooks for 250 handling
2012-08-06 16:12:50 -04:00
Christian 8bda53cb77 Add in a lot of network handler stuff - also, expose the asm harvested data 2012-08-06 09:52:42 -04:00
Christian 09098f8a0f Remove some unneeded fields from the annotations 2012-08-05 02:24:02 -04:00
LexManos 63d5d42512 Made empty constructor for ModMetadata public 2012-08-04 22:51:57 -07:00
LexManos 7e68b53196 Fix path trimming for copytree 2012-08-04 20:36:27 -07:00
Christian e92be964fd Change property name to fml.modStates not fml.disabledMods- it makes more sense that way 2012-08-04 12:35:46 -04:00
Christian 969de94d8a Add in a bit of logging when events get sent to mod containers 2012-08-04 11:45:40 -04:00
Christian e39092335a Allow coremods to inject a modcontainer and run code
this will mean that FML is deliberately and very obviously incompatible with a modloader installation.

Fix up worldtype so that the server can run.
2012-08-04 11:31:06 -04:00
LexManos ae79c79447 Patch commands.py to support side '2' as common, as well as fix a few small errors in the update_patches and fml scripts. 2012-08-04 03:34:34 -07:00
LexManos fc8c2ac6e4 Merged transformers/ to /common and renamed the asm source download to align better with the asm bin file name. 2012-08-03 23:51:49 -07:00
LexManos fbc968e1b4 Change place commands.py backup is stored. 2012-08-03 23:24:58 -07:00
LexManos 08eb7c5c45 FML finish won't updatemcp automatically, easier integration with forge. 2012-08-03 17:36:16 -07:00
LexManos 18aec5b257 Fix packaging and install to not have the src/ folder, making it align better with the dev env. 2012-08-03 17:32:23 -07:00
LexManos 34706d6acf Moved setting up eclipse to setup_mcp 2012-08-03 16:56:00 -07:00
LexManos b572c6a038 Fixed ant script to support common folder building and add the new files to the dist archives. 2012-08-03 03:37:45 -07:00
LexManos 2fccc04903 setup_fml's decompile will result in proper md5 files now {if there is no compiler issues} 2012-08-03 03:35:38 -07:00
LexManos 7949a15226 Removed FMLRegistry, and IMinecraftRegistry.
Updated server side to use the seperated registry classes like the client does.
Updated searge name references on server
Made StatBase.statName public using AccessTransformer
Server should compile now
2012-08-03 01:50:48 -07:00
LexManos 476dfbc754 Fix MockBlock compile 2012-08-03 01:47:09 -07:00
LexManos f1717526d8 Download argo/guava source references in install, and updated eclipse workspaces to reference them. 2012-08-02 23:36:00 -07:00
LexManos 56153c43d6 Cleaned up commands.patch, removed debug print in fml.py 2012-08-02 21:14:06 -07:00
LexManos 79ed963c4a Remove clientdrop, old reference files. 2012-08-02 20:32:51 -07:00
LexManos 5f848d3d2a Delete some dead files 2012-08-02 19:42:12 -07:00
Christian 1b20de0ab6 Fix commands patch, WorldType patch and some ML compat stuff 2012-08-02 20:09:18 -02:30
Christian 6d70a76c95 More fixes 2012-08-02 16:50:30 -02:30
Christian b51c357d50 More build fixes for jenkins 2012-08-02 10:33:29 -02:30
Christian e44515304a Try and fix the jenkins build 2012-08-02 10:30:52 -02:30
Christian dab4179024 Change some event names, hook up the event code for server events for FML 2012-08-02 09:31:03 -02:30
Christian 2df9ba14d4 Merge branch 'newfmlmod' 2012-08-02 08:52:11 -02:30
LexManos 1e47f3e468 Introduced patching of runtime/commands.py to allow for usage of the src/common folder. 2012-08-02 00:51:51 -07:00
Christian 582a785fb8 Change some stuff around - begin launching the server through the wrapper too.
A lot of patches went in - the client and server both launch and start up mods.
2012-08-02 02:08:30 -02:30
Christian ff152479e6 More stuff 2012-08-01 21:19:11 -02:30
Christian 7f8bf56d4f Fix classpath for Client, maybe? 2012-08-01 21:19:11 -02:30
Christian 22fd1652a0 Line endings for this branch 2012-08-01 21:18:55 -02:30
Christian 5f51e63385 A load of transformer accesses- also a few tweaks to the transformer, and linux support in the fml python 2012-08-01 18:59:45 -02:30
LexManos 4fb08f1660 Rewrote patch generation and application to no longer need diff, and attempt to apply common patches on decompiles that don't have one side or the other. 2012-08-01 06:54:57 -07:00
LexManos d0036dda00 Updated eclipse projects to have src-common linked resources 2012-08-01 03:52:03 -07:00
LexManos 4ca63717e5 Modified the decompiler stage to:
Compile and run AccessTransformer during the pre-RG stage of decompilation.
Merge resulting sources that are identical to src/common

ToDo:
Finish the common intergration:
-update_patches - Add common folder support
-apply_patches:
--patch each side, also patch all common patches to each side incase they are not merged, only if file exists.
2012-08-01 03:25:45 -07:00
LexManos 62535863ad Add temp AccessTransformer config for FML 2012-08-01 03:18:31 -07:00
LexManos 629b384f0d Discard old setup script 2012-08-01 03:18:02 -07:00
LexManos b9982f18f5 Fixed AccessTransformer issue with trying to load files, instead of resources. 2012-08-01 03:17:36 -07:00
Christian 1753b28475 Commit the start of some pluggable transformers 2012-07-31 09:46:45 -04:00
Christian e7a7b3c844 XP for smelting 2012-07-30 23:07:53 -04:00
Christian 6f8b39ea09 Beginning the 1.3.1 update 2012-07-30 22:31:07 -04:00
Christian e001103ed8 Add in the ability to create versioned dependencies for mod relationships
BaseMod versions are loaded too late so will never work as a versioned
dependency requirement, but can have versioned deps of others
2012-07-30 17:01:27 -04:00
Christian d1d12e4ebd Fix up coremods with relaunch, add in a sample "coremod" 2012-07-30 11:34:30 -04:00
Christian b79ec382d7 Add in events for the method pre/init/post annotations so we can add in extra data during the event phase 2012-07-30 00:33:21 -04:00
Christian a850ea6bc0 Fix whitespace issue 2012-07-29 23:54:07 -04:00
Christian 825f1a8b50 Fix window sticking around - it doesn't anymore 2012-07-29 23:46:52 -04:00
Christian e1fc02b5b9 Add in "transform excluded" classes that we still need to take loading responsibility for 2012-07-29 23:30:37 -04:00
Christian b53ce2aa90 Added in some dialogs when things don't go so well 2012-07-29 22:55:53 -04:00
Christian ba28161f16 New logging stuff, also the early plugin api for forge 2012-07-29 22:54:59 -04:00
Christian 50ed44359d Merge branch 'minecraft1.3' into newfmlmod 2012-07-23 23:02:25 -02:30
Christian f78400711e Fix up mod classloading delegation 2012-07-23 22:54:36 -02:30
Christian 69e895e687 Some patches to go along with the other changes 2012-07-23 22:51:16 -02:30
Christian 769663466f More stuff as I roll out the changes 2012-07-23 22:50:37 -02:30
Christian 9e4131c3e8 A bunch more fixes for FML mods 2012-07-23 16:33:17 -02:30
Christian 8b5ddf1739 Merge remote-tracking branch 'mainlap/newkeys' into newfmlmod
Conflicts:
	client/cpw/mods/fml/client/FMLClientHandler.java
2012-07-22 20:30:42 -02:30
Christian 5561f8218a New key handling 2012-07-22 20:25:18 -02:30
Christian 2a19eca517 Check in a lot of recent work 2012-07-22 11:56:38 -02:30
Christian 3115f92ee4 Check in new fml mod work so far. Lots still to do. 2012-07-14 13:58:46 -04:00
LexManos 2671641b83 Cleaned up the install script for the source distrabution to setup the workspace properly, delete argo, and download all required dependancies. 2012-07-12 18:07:58 -07:00
LexManos 0a9ee584bf Added call to clean_source to build script to fix patch fuzz on windows. 2012-07-12 18:06:39 -07:00
LexManos 48dcdca805 Fix Client-Clean project to use relative path to argo. 2012-07-12 18:06:01 -07:00
Christian 2db9292ba5 Another bloody ticking fix. This should fix mods that use ML.setInGameHook(true,false) on the
server side to recieve ticks.
2012-07-08 22:06:11 -04:00
Christian 9d6266d85b Fix up mod classloading delegation 2012-07-06 15:59:16 -04:00
Christian 25fb847dc1 Fixes 2012-07-06 10:42:49 -04:00
Christian 98e31e5f03 Incorporate server patches into client 2012-07-06 10:29:17 -04:00
Christian 0ff59e7978 Remove two places that are unpatchable now 2012-07-06 09:52:21 -04:00
Christian 97cfbb990d Server repatching 2012-07-06 09:44:00 -04:00
Christian 59949849f0 Add a "checkpatches" target and check if your patches are up to date before running a repatch operation 2012-07-06 09:19:58 -04:00
Christian be59dfff54 Launch through the applet launcher too 2012-07-06 01:04:33 -04:00
Christian 32e93213f1 Some patches for the server 2012-07-05 22:31:46 -04:00
Christian b9466b8ee5 Lots of client patch fixup 2012-07-05 18:13:47 -04:00
Christian 275b78957a Update git ignore to ignore a fernflowerzip that's lying around 2012-07-05 15:38:37 -04:00
Christian 4ab2a3cb6b And we have a brand, "fml". We're definitely modded :) 2012-07-05 15:36:31 -04:00
Christian 58576c2a19 UnexpectedThrowable is now the much more awesome CrashReport! 2012-07-05 15:35:38 -04:00
Christian c0b707a9bd Merge branch 'master' into minecraft1.3
Bring some of the ticking fixes in

Conflicts:
	client/cpw/mods/fml/client/FMLClientHandler.java
	patches/minecraft_server/net/minecraft/server/MinecraftServer.java.patch
2012-07-05 15:30:21 -04:00
Christian e8b09f4692 Got the relauncher downloading and injecting library files 2012-07-05 15:23:37 -04:00
Christian decbe8ba7c Tweak ticking YET AGAIN. Should fire a solitary GUILOAD tick right as the game screen loads.
Hopefully fixes worldload tick issue too
2012-07-04 00:16:30 -04:00
Christian 53c2b50212 FFS let this fix that bloody ticking mess that is ML compatibility. 2012-07-03 23:03:51 -04:00
Christian 3d8a5edc30 Separate gui ticking completely. send it as if it's a world tick. ML gui ticks are epically dumb.
Fix Worldload being filtered from the trigger arming.
Also, improve errors going to an error screen. There should be more information now.
2012-07-03 22:39:35 -04:00
Christian 275fd394c1 Change gui ticking and world load tick. Should close issue #40 and kill it deader
than a very very dead thing. *$^*(#% Modloader ticking b#%$hit
2012-07-03 21:37:54 -04:00
Christian d1f791f94e Merge branch 'master' into minecraft1.3 2012-07-03 08:15:58 -04:00
Christian 60b50bb7f2 Tweak build xml for more cleanliness 2012-07-03 08:14:35 -04:00
Christian 9cafdf94ac Merge branch 'antscriptupdates' 2012-07-02 23:50:49 -04:00
Christian 07a1927c25 Update some stuff 2012-07-02 23:49:40 -04:00
Christian 777b4407c2 Merge branch 'antscriptupdates' into minecraft1.3 2012-07-02 23:49:06 -04:00
Christian a98ffafd71 Add in more options for ant script and clean up needing to clean every time. 2012-07-02 23:43:29 -04:00
Christian 414d59b1aa Merge branch 'testrecover' 2012-07-02 20:19:23 -04:00
Christian f0aa28162e Merge branch 'antscriptupdates' into minecraft1.3 2012-07-02 15:56:33 -04:00
Christian f0484a8941 Merge branch 'antscriptupdates' 2012-07-02 15:55:24 -04:00
Christian 2090264599 Some more fixes to the ant stuff: apply patches now happens at the right time, I grab fernflower as part of
setup and added an updatepatches call too
2012-07-02 15:54:25 -04:00
Christian ecaa158981 Merge branch 'antscriptupdates' into minecraft1.3
Conflicts:
	build.xml
2012-07-02 15:21:15 -04:00
Christian 33517d2b8d Merge branch 'antscriptupdates' 2012-07-02 15:17:32 -04:00
Christian 6c99b80b73 Add in a setupenvironment ant target specifically for setting up an FML environment from scratch 2012-07-02 15:16:40 -04:00
Christian 0418f01886 Harvest MC version from MCP 2012-07-02 13:31:45 -04:00
Christian 6f8409a2ce fix sided proxy bukkit test (not used so not a biggie) 2012-07-02 12:32:41 -04:00
Christian a8f599983e Harvest MC version from MCP 2012-07-02 12:24:37 -04:00
Christian b51ce21b70 Initial checkin. Some patches are probably missing, but client compiles. 2012-06-29 20:18:04 -04:00
Christian 731dbf5175 Working simple scheduled ticking, Player ticks 2012-06-28 23:37:30 -04:00
Christian d3b48f0c21 Support tick spacing through new IScheduledTickHandler 2012-06-28 17:10:35 -04:00
Christian ce9be2864c Change TickType.WORLD to send the world as arg[0] to match the server. 2012-06-28 14:24:34 -04:00
Christian 541951416e And there are not 1000 seconds in a second 2012-06-28 08:31:32 -04:00
Christian 4f8d71e289 Seconds are 1000 milliseconds long. Not 1 millisecond long. 2012-06-28 08:27:21 -04:00
Christian 7098d613a0 Tweak profiler command on bukkit 2012-06-28 08:21:24 -04:00
Christian e688e04446 Fix up a derp in the timing command 2012-06-27 22:13:55 -04:00
Christian 0878bd1fcf Fix code to use guava 10 only. Stupid bukkit plugins and daft dependencies on guava 10! 2012-06-27 08:23:53 -04:00
Christian 1c7bcf8077 Tweak for end profiling 2012-06-26 23:37:54 -04:00
Christian 81d4d77202 Add in simple profiler for bukkit 2012-06-26 23:16:23 -04:00
Christian 5a5ff97f39 Add in a mechanism to get the modcontainer for a mod - so things can be programmatically changed 2012-06-26 16:24:50 -04:00
Christian a7caad10ba Add in bukkit support for recipe change 2012-06-26 15:40:30 -04:00
Christian 64dab3c8d7 Add in a new recipe handler registry method for ease of adding recipes to MC 2012-06-26 15:29:34 -04:00
Christian 5d4fdd1337 Update tester mod 2012-06-22 09:30:47 -04:00
Christian 77479d8b74 Fix ticking for GUI ticks too! 2012-06-22 09:30:27 -04:00
Christian dd7ee6e268 Fix dependency string processing error 2012-06-22 06:21:04 -04:00
Christian 1236abf679 ModSorting test case 2012-06-21 21:56:16 -04:00
Christian 64d1b29c43 Fix ticking properly - ML world ticks now fire once, properly 2012-06-21 18:11:40 -04:00
LexManos 262c68a81d Added stupididty exception for common issue with getMinecraftLogger. 2012-06-21 03:17:33 -07:00
Christian 21042e6913 Rename unused ML prop config files if they exist (to .bak) and
skip generating if not needed
2012-06-20 21:17:32 -04:00
Christian 58d6e58b93 Update bukkit with changes 2012-06-20 12:36:48 -04:00
Christian 6ba65d047f Revert "Test failing build"
This reverts commit 744febc38e915a12c388fe01ba6715d31b6b6ee2.
2012-06-20 08:44:49 -04:00
Christian 63be4cb88f Revert "Revert "Fail the build when recompilation fails""
This reverts commit c2d920d738a294462338fbe955c62a0f4034304c.
2012-06-20 08:44:08 -04:00
Christian acbc8d9a1b Revert "Fail the build when recompilation fails"
This reverts commit 482e3be3c9a96df8cefad81d78c7a4e83ad898b4.
2012-06-20 08:39:11 -04:00
Christian e8db35228b Test failing build 2012-06-20 08:35:47 -04:00
Christian 198dd807fd Fail the build when recompilation fails 2012-06-20 08:35:14 -04:00
Christian 02f9578b52 Fix huge bug/typo in basemodticker that stopped ticks getting sent 2012-06-20 08:03:57 -04:00
LexManos 308525987d Fix compilation error, Protip: Don't use java7 things when compiling for java6, and Don't report successful build on compilation errors cpw. 2012-06-20 02:14:07 -07:00
LexManos ef7514288b Remove cr's from modinfo descriptions, they print oddly in Minecraft. 2012-06-19 19:58:48 -07:00
LexManos 8a7b91fb1c Print mod metadata info errors if we are in MCP. 2012-06-19 19:55:28 -07:00
LexManos 07bebf187c Should fix concurent modification exceptions when using removeSpawns 2012-06-19 19:44:52 -07:00
LexManos 5ee3a057a2 Remove some eclipse preference files 2012-06-19 19:44:07 -07:00
LexManos 9495094a48 Update gitignore to ignore some eclipse preference files. 2012-06-19 19:43:46 -07:00
LexManos c0dffcbcec Merge pull request #29 from ScottKillen/master
Fixed WorldType to allow custom WorldTypes
2012-06-19 19:22:06 -07:00
LexManos 06fffe54b1 Added EntityRendererProxy class for compatibility with ModLoader mods that rely on it's existance. 2012-06-17 19:30:10 -07:00
Christian 944fd02fca More ticking cleanup 2012-06-17 18:53:49 -04:00
Christian 4385704172 Remove WorldLoad tick from modloader mods- too early. *sigh* 2012-06-17 18:49:19 -04:00
Christian 6d46fefd83 Make sure to reset the clock trigger 2012-06-17 18:41:54 -04:00
Christian ce71f85095 Force all client modloader ticks to occur at render end 2012-06-17 18:41:05 -04:00
Scott Killen 83fa5ffa5e Client
======
Added hook in GuiCreateWorld to allow WorldType to present GUI on world creation.
2012-06-17 15:05:16 -04:00
Scott Killen f85c7a48ca **Client**
* Delegated World.func_46068_G() (getHorizon), which depends on WorldType, to the WorldType class per LexManos' suggestion
2012-06-17 00:04:50 -04:00
Scott Killen efc8d1bb37 Client
======
- Fixed WorldType to allow custom WorldTypes in world creation GUI.
- Deprecated client WorldType.getSeaLevel() and renamed it with the more accurate name of getMinimumSpawnHeight.
- Changed related reference WorldProvider.

Server
======
- Fixed WorldType to allow custom WorldTypes
- Added methods to WorldType giving it the exact abilities of client WorldType
- Adjusted WorldProvider so that it relies on WorldType the same way it does on client.
2012-06-16 23:31:17 -04:00
Christian aec5bbb50f Merge pull request #27 from TheNoid/master
Make FML logs use system line endings …
2012-06-14 12:06:19 -07:00
Dion Williams 64f7b219af Make FML logs use system line endings for consistency with Java stack traces in the logs. 2012-06-14 18:01:35 +01:00
LexManos 27f8d07e44 Server side fix for invalid parameter to onCrafting 2012-06-13 20:02:35 -07:00
LexManos c306da9d6d Proper fix for scroll list not covering all of the hidden scroll items. 2012-06-13 19:59:54 -07:00
Christian 5a24f7f0d7 Merge pull request #26 from GenuineSounds/patch-2
Incorrectly passing the IInventory of the extraction slot instead of the...
2012-06-13 18:52:46 -07:00
Christian 6826174464 Merge pull request #25 from GenuineSounds/patch-1
Having the string trimmed to 9 made most long strings show a couple of p...
2012-06-13 18:50:26 -07:00
Brian Wiegand 04917a9a8c Incorrectly passing the IInventory of the extraction slot instead of the crafting matrix, get back to me on why it's doing this instead of the default behavior of ModLoader and Forge. 2012-06-13 15:17:33 -07:00
Brian Wiegand a5b699c2ca Having the string trimmed to 9 made most long strings show a couple of pixels at the very top and very bottom. ie
https://dl.dropbox.com/u/79514/2012-06-13_13.25.35.png
2012-06-13 14:09:07 -07:00
LexManos 5115f4f1e4 Fixed KeyBinding issue with ModLoader container, if you register a KeyBinding twice it will discard the old one. And fixed issue where getVersion() could return null causing NPE. 2012-06-10 17:19:05 -07:00
LexManos b12cafb5c5 Made it so it will attempt to scale any Texture Effects that return data for smaller texture resolutions. Made the size descrepancy only a error for ITextureFX texture effects. 2012-06-10 05:56:52 -07:00
Christian ad8e9f10c3 Fix up "errored" mod states so they actually read as errors 2012-06-09 11:07:07 -04:00
Christian b8ae8664ac Fix up bukkit for biome code 2012-06-09 10:47:43 -04:00
Christian df205d7d3f Fix up biome handling for client and server 2012-06-09 10:27:24 -04:00
Scott Killen abcb583dd0 - Fixed client crash bug in add/remove Biome functionality. Arrays.asList() returns a fixed-sized list per java spec. Adding and removing biomes throws UnsupportedOperationException.
- Fixed same on server and added disabled removeBiome functionality. This touched a lot of classes as the nonWorking removeBiome seemed to be lots of places inconsistent with addBiome.
2012-06-09 07:59:35 -04:00
Christian bc72bf11ee Tweak error handling - report the exception that caused the bailout 2012-06-08 15:31:30 -04:00
Christian 4a050fbdba Fix parameter ordering in ticks 2012-06-08 15:22:40 -04:00
Christian 16ab855df5 Update bukkit for world gen tweaks 2012-06-07 19:47:11 -04:00
Christian 320503340b Change world generation to expose a mod interface 2012-06-07 19:44:03 -04:00
Christian 749cb7bcd6 Update bukkit for early load change 2012-06-07 19:28:07 -04:00
Christian 00a9cd4a5f Attempt early initialization of Minecraft Forge 2012-06-07 19:25:49 -04:00
Christian 33fc5228ce Update bukkit handler 2012-06-07 17:57:07 -04:00
Christian 0768f82522 Add in a server side WORLDLOAD tick 2012-06-07 17:54:43 -04:00
Christian 6f91209ea8 Fix ticking- need to register the basemod tickhandler *sigh* 2012-06-07 16:31:23 -04:00
Christian 110ca0f3ba Fix ticking for new name "GAME" vs "WORLD" 2012-06-07 16:21:01 -04:00
Christian Weeks 0814f177c5 Update bukkit handlers 2012-06-07 14:03:42 -04:00
Christian Weeks 856fa4f337 Reorganize basemod ticking to use ITickHandler. Introduce "GAME" tick vs "WORLD" tick for
mods that want to tick per world and "globally"
2012-06-07 13:53:16 -04:00
Christian Weeks 5acab9e790 Expose a "clean" ticking interface and fix server tick loop for world ticks 2012-06-07 11:12:51 -04:00
Christian Weeks c62c1df791 Tweak width of description 2012-06-07 08:39:22 -04:00
LexManos 779b3298bd Fix for in game tick running when it shouldn't. Fixed some tabbing issue in crazy's PR. 2012-06-06 08:01:54 -07:00
LexManos 5997bd3b87 Interm implementation of keyboardEvent for ModLoader. 2012-06-06 01:43:49 -07:00
LexManos c6de498904 Add static log() functions to the RenderAccessLibrary, and fixed up the logo rendering to better display the images. 2012-06-05 18:49:07 -07:00
Christian bf5835566a Merge pull request #14 from crazyputje/master
onTickInGUI fix. Thanks crazyputje!
2012-06-04 14:41:59 -07:00
crazyputje 20fc9de087 removed 'if (client.theWorld != null)' so it also ticks in the main menu 2012-06-04 20:36:57 +03:00
Christian Weeks eae26b0562 Helps to have a retention policy 2012-06-02 22:41:50 -04:00
Christian Weeks eeeaf140a7 Helps to have a retention policy for runtime annotations 2012-06-02 22:40:45 -04:00
Christian Weeks 38978a35dc Add in bukkit proxy handler 2012-06-02 22:14:25 -04:00
Christian Weeks 1f7baa09b5 More proxy code 2012-06-02 22:12:15 -04:00
Christian Weeks f15d9c507f Introduce a proxy side loader for mod use 2012-06-02 22:12:15 -04:00
LexManos b56b01571c Fixed GuiModList Logo rendering to allow for logos of different sizes to be rendered properly. Logos will render themselves full underneath the text, It is the modder's job to make it look good. 2012-06-02 18:05:57 -07:00
Christian Weeks 202933c409 Update credits information 2012-06-02 11:45:47 -04:00
Christian Weeks 8baf435a4a Update readme for the client side 2012-06-02 11:44:26 -04:00
Christian Weeks 446faad048 Update bukkit handler to inject names at startup 2012-06-02 11:03:20 -04:00
Christian Weeks 716b32c8ab Merge remote-tracking branch 'origin/master' 2012-06-01 23:25:18 -04:00
Christian Weeks c9731ed7e3 Fix up optifine detection properly 2012-06-01 23:23:50 -04:00
Christian Weeks 0e6ccd81ed Update bukkit handler 2012-06-01 23:10:38 -04:00
Christian Weeks de8a5cfc8b Slight reorganization of texture ticking - accomodate optifine 2012-06-01 23:07:32 -04:00
Christian Weeks 174d6691bd Add in optifine visibility for the mod list. Will search for an "optifine_mod.info" file on the
class path if sp614x wants to add one to optifine.
2012-06-01 14:55:49 -04:00
Christian Weeks 7d07a752d8 Fix ticking on bukkit server 2012-06-01 11:08:32 -04:00
Christian Weeks ad5dc783d8 Fix ticking on the server 2012-06-01 11:07:14 -04:00
Christian Weeks ed08c425af Implement missing language load hook for server 2012-06-01 10:22:08 -04:00
Christian Weeks 2f09a048d6 Tweaks to basemod setup 2012-06-01 00:33:51 -04:00
Christian Weeks 4085617ca2 Bukkitside fixup 2012-06-01 00:27:46 -04:00
Christian Weeks 51701d09fd Merge branch 'bukkitreorg' 2012-05-31 23:07:16 -04:00
Christian Weeks 72ad8bcde1 Merge branch 'bukkit'
Conflicts:
	common/cpw/mods/fml/common/IWorldGenerator.java
	common/cpw/mods/fml/common/registry/FMLRegistry.java
	common/cpw/mods/fml/common/registry/IMinecraftRegistry.java
	common/net/minecraft/server/CommonRegistry.java
	common/net/minecraft/server/IMinecraftRegistry.java
	common/net/minecraft/src/CommonRegistry.java
	common/net/minecraft/src/IMinecraftRegistry.java
2012-05-31 23:00:06 -04:00
Christian Weeks cfb99b01c8 Fix copied code. Derpbag. 2012-05-31 22:48:44 -04:00
Christian Weeks e35d31e50d Update FML with recent mainline changes 2012-05-31 22:48:44 -04:00
Christian Weeks c4ad78ab87 Update bukkit with new mod fixes 2012-05-31 22:48:44 -04:00
Christian Weeks ac779739aa Damn you bukkit with your same names for different classes!!!! EntityPlayer->EntityHuman 2012-05-31 22:48:44 -04:00
Christian Weeks 09d5bf95ae Fix chunk generators for bukkit 2012-05-31 22:48:44 -04:00
Christian Weeks b2e01d8f2a Bukkit version 2012-05-31 22:48:44 -04:00
Christian Weeks 2521e5b390 Merge branch 'bukkit' - massive code reorganization for fml 2.0
Conflicts:
	common/cpw/mods/fml/common/IWorldGenerator.java
	common/cpw/mods/fml/common/registry/FMLRegistry.java
	common/cpw/mods/fml/common/registry/IMinecraftRegistry.java
	common/net/minecraft/server/CommonRegistry.java
	common/net/minecraft/server/IMinecraftRegistry.java
	common/net/minecraft/src/CommonRegistry.java
	common/net/minecraft/src/IMinecraftRegistry.java
2012-05-31 22:45:19 -04:00
Christian Weeks ae6621bfdd More tweaks for proper API 2012-05-31 22:42:23 -04:00
Christian Weeks dfd15acb6d Reorganize for bukkit integration 2012-05-31 22:09:45 -04:00
Christian Weeks 660521e6f2 Fix project, new gui layout with screenshot, thanks Sengir! 2012-05-30 09:25:04 -04:00
Christian Weeks b5a10c0153 Add in missing hooks, add branding information to the crash report 2012-05-27 07:14:35 -04:00
LexManos d4fd21dcbc Fixed regex issue in last push. 2012-05-27 01:40:22 -07:00
LexManos 379c5b2888 Fixed up for newline before case bodies. 2012-05-27 01:24:45 -07:00
LexManos 51a959f8a4 Should fix windows {me} generating different patches then linux {cpw} 2012-05-27 00:22:27 -07:00
Christian Weeks 7d7c395ff3 Move first tick to the real first tick 2012-05-26 02:30:21 -04:00
Christian Weeks 7c590e62c6 Merge in the mod texture changes from Lex 2012-05-26 02:29:35 -04:00
LexManos 6191ed61e0 Fixed location refs to fmlversion.properties 2012-05-25 23:25:05 -07:00
Christian Weeks 96b442e3cc Add in a static render access class for optifine and other render editing mods to use 2012-05-25 22:13:51 -04:00
Christian Weeks 3454b43daa Add in a "world load" tick fired just as the world completes loading. This SHOULD fix millinaire. 2012-05-25 17:21:30 -04:00
Christian Weeks f3b15940ee Changing up the mod list data 2012-05-25 15:25:35 -04:00
LexManos 7667df0caf Fixed up ModTexture* classes to use the ITextureFX events to resize the image as needed. Also fixed ModTextureStatic's not being applied properly. 2012-05-24 22:48:15 -07:00
Christian Weeks d45134eb9a Fix up two stupid overwrites in my mergeup from lex 2012-05-24 23:18:04 -04:00
Christian Weeks fe710a9245 Fix derp in MTS 2012-05-24 22:13:33 -04:00
Christian Weeks 46b7dc0fec Patch fixing 2012-05-24 21:40:34 -04:00
Christian Weeks f5598573a2 Update some stuff for updated tweaks 2012-05-24 21:39:16 -04:00
Christian Weeks d7c9010c92 Update FMLClient with my changes 2012-05-24 21:33:43 -04:00
Christian Weeks 012c378427 my tweaks 2012-05-24 21:06:27 -04:00
LexManos 00ca4ead44 difflist should include server and client now. 2012-05-24 03:48:59 -07:00
LexManos 2927be6247 Some patch cleanup. 2012-05-24 02:18:20 -07:00
LexManos a9b317c941 Rewrote how HD Texture support worked, to make it easier for Optifine to integrate.
Fixed TextureFlamesFX for extramly large texture sizes.
Fixed the texture size sceme to allow for different sizes of textures in the same pack.
2012-05-24 01:35:37 -07:00
LexManos 1727ce69ed Line number changed.. 2012-05-24 01:33:50 -07:00
Christian Weeks 0d5ab57fa0 Fix up the watch 2012-05-18 20:42:12 -04:00
Christian Weeks 2dcd1c4065 And some tweaks to the texture handling 2012-05-18 20:17:07 -04:00
Christian Weeks a40ba43957 Fix up some fubars in MTS and MTA 2012-05-18 20:16:41 -04:00
Christian Weeks 88f3c4f9bd Lots of error handling. 2012-05-18 10:38:40 -04:00
Christian Weeks dd94427f22 Missed a patch *sigh* 2012-05-17 21:57:24 -04:00
Christian Weeks cc4641b0d9 Add simple API to allow mods to let their textures be overriden by other mods 2012-05-17 21:47:12 -04:00
Christian Weeks a9e17048e6 Because, of course, I broke the first build... 2012-05-17 20:27:24 -04:00
Christian Weeks abee6d2507 Some logging of texture overrides- also, only unregister if it's an actual ModTextureStatic, not if it's a subclass. 2012-05-17 15:39:04 -04:00
Christian Weeks 1004a3236a Derpy exceptions derpy exception handling 2012-05-17 15:19:25 -04:00
Christian Weeks 8aacd2d127 Remove the dependency in RenderEngine, decided on the simple API for texture FX 2012-05-17 15:11:21 -04:00
Christian Weeks bc3790e3ca Tweak the render patch- we won't fail if the updateTexture call fails 2012-05-16 00:34:50 -04:00
Christian Weeks 77d6ae8ffa Update patches: add in a setup for most of the texturefx classes 2012-05-16 00:01:12 -04:00
Christian Weeks a220fb34e2 Tweaking texture loading 2012-05-16 00:00:52 -04:00
Christian Weeks ddb1085064 Fix tileSize -> iconTileSize. Stupid MCP 2012-05-15 22:34:17 -04:00
Christian Weeks 319758bd33 Catch throwable (NoClassDefFoundError) and don't abort loading- it's probably a badly named class file. 2012-05-15 22:23:00 -04:00
Christian Weeks 1b299b4ff4 Fix some derpy 2012-05-15 22:18:41 -04:00
Christian Weeks 25ced3f321 Update patches for hd textures 2012-05-15 22:10:38 -04:00
Christian Weeks 0e3dcc4eda Change hd texture handling 2012-05-15 22:05:24 -04:00
Christian Weeks 6903deb69d Refresh the renderengine patch- catch and log some texture pack reload errors 2012-05-15 16:21:40 -04:00
Christian Weeks 5412be2d76 More mod list fixes 2012-05-15 16:19:46 -04:00
Christian Weeks a77aeedee2 Lots of cleanup on the mod list, pretend we're the mcpatcher for mod HD detection. 2012-05-15 15:52:19 -04:00
Christian Weeks bc23e7a657 Fix up fubar in worldprovider. Add in obfuscation detection. Capture the exception that crashes minecraft in the log file. 2012-05-14 18:21:35 -04:00
Christian Weeks 6b23024f11 ModLoader worldtype hackery compatibility 2012-05-14 16:21:05 -04:00
Christian Weeks c2264c97aa Fix derp 2012-05-14 14:16:50 -04:00
Christian Weeks 828ada8aa6 Only log the warning once per texture 2012-05-14 13:20:50 -04:00
Christian Weeks 5c48a3c146 push patches 2012-05-14 12:22:46 -04:00
Christian Weeks 028fc2505b Fix millinaire support. Fix Portal eating rendering time. add in profile visibility for mod stuff. 2012-05-14 11:38:54 -04:00
Christian Weeks 6f6c3ee939 Fix the serverside. FUUUUUUUU! 2012-05-14 01:45:56 -04:00
Christian Weeks a01711361d HD patching complete? Clean up mod info data, Dummy field for dummy mods 2012-05-14 01:39:21 -04:00
Christian Weeks d48213b444 Improving the scroll list, HD texture patches 2012-05-13 02:46:39 -04:00
Christian Weeks 00aee5b8e1 Actually pass in the mod name 2012-05-12 02:25:15 -04:00
Christian Weeks b26b3fda1b Fix up incorrect dependency handling 2012-05-12 02:10:50 -04:00
Christian Weeks ff26096a0f Fix stupid problem with braces 2012-05-12 01:06:58 -04:00
Christian Weeks fdd80dad80 Tick only when there's a world 2012-05-12 01:03:36 -04:00
Christian Weeks caa5384552 Fix nulls in the mod list, start building the gui screen 2012-05-12 00:47:04 -04:00
Christian Weeks 053fd64bde Gui related ticking 2012-05-12 00:00:33 -04:00
Christian Weeks c689991986 Try always loading the language data 2012-05-11 23:37:58 -04:00
Christian Weeks 1146642dec Always load the "en_US" langpack into the translation table first, then the actual language. 2012-05-11 22:20:09 -04:00
Christian Weeks 658f018404 Derpy derp- fix stupid pointless cast 2012-05-11 17:41:33 -04:00
Christian Weeks 394b046220 Fix missing ml.sendpacket, call in renderers 2012-05-11 17:31:28 -04:00
Christian Weeks c032e39fed Actually mark the sprite as used when you allocate it! 2012-05-11 16:49:21 -04:00
Christian Weeks a6da168420 Helps to add the new hook! 2012-05-11 16:30:23 -04:00
Christian Weeks 0cd0d69ec4 Hook texture pack changes and loads so we can register override textures 2012-05-11 16:23:26 -04:00
Christian Weeks f1453839b4 Fix problem with nulls in getModList
Work on the meta information file
2012-05-11 15:18:26 -04:00
Christian Weeks 7735567ce0 More tweaks to stuff: mod list, branding, more hooks 2012-05-11 01:45:36 -04:00
Christian Weeks abc7b3f2a6 Tidying up and more hooks 2012-05-10 21:30:06 -04:00
Christian Weeks b7861ec04c Tweak block rendering organization. Add in worldgen for client. 2012-05-10 19:51:15 -04:00
Christian Weeks 813ad71f13 Tidy up a lot of code- ModLoader and BaseMod are now almost identical client and server side 2012-05-10 18:54:25 -04:00
Christian Weeks bb2af1d883 Tweak ordering for sorting- should be a stable sort now 2012-05-10 15:48:26 -04:00
Christian Weeks 7b5ad64378 Update git version capture 2012-05-10 13:01:39 -04:00
Christian Weeks be9557b8ef Ignore jenkins tags 2012-05-10 12:53:27 -04:00
Christian Weeks 57af97858b Tweak some build stuff for versioning 2012-05-10 12:24:17 -04:00
Christian Weeks 89a6790222 Update build to actually put Loader in... 2012-05-10 11:16:58 -04:00
Christian Weeks 4c9ca1ffc1 tweak location of build properties in src jar 2012-05-10 10:09:56 -04:00
Christian Weeks 5a93998097 Lots of tweaks to mod output pretty printing. new versioning scheme. 2012-05-10 09:42:31 -04:00
LexManos ef6bb505b9 Inventroy rendering 2012-05-10 01:25:56 -07:00
LexManos 8d0a9b770d Fixed up the ModLoader render block hook, RP's blocks now render. 2012-05-10 01:00:07 -07:00
LexManos 2afed48993 Should fix colliding model ids with MC's internal IDs 2012-05-09 23:38:01 -07:00
Christian Weeks f4862dc40d Fixes 2012-05-10 02:01:23 -04:00
Christian Weeks 311ca8866e Fix up build script a bit, all modloader is public, and fix tile entity renderer 2012-05-10 00:07:46 -04:00
Christian Weeks 7846f10c74 Add in some more stuff for handling key bindings, rendering 2012-05-07 17:44:49 -04:00
Christian Weeks 0438fbd47e Reorganize ticking a bit 2012-05-07 01:39:55 -04:00
Christian Weeks 56e7270dee Separate sprite handling, fix worldtype 2012-05-07 01:26:21 -04:00
Christian Weeks b6b5955404 Working on the ticking stuff 2012-05-07 00:54:18 -04:00
LexManos 55d252b657 more client side hooks and Texture overrides/animations. 2012-05-06 16:32:59 -07:00
Christian Weeks 49be023eab Halfway through ticking- won't compile 2012-05-06 00:58:40 -04:00
Christian Weeks 8c79b9b946 ModLoader moves forwards 2012-05-05 20:33:40 -04:00
Christian Weeks bca823c421 Let's get hooking! 2012-05-05 19:52:53 -04:00
Christian Weeks e0e77a6bb5 API is restored for client side. Implementation starting. 2012-05-05 14:42:46 -04:00
Christian Weeks 50a3543de0 And some patches for that 2012-05-04 17:04:18 -04:00
Christian Weeks 816b0738e4 The beginning 2012-05-04 17:02:12 -04:00
Christian Weeks 4b4ad6781e Introduce the client side FML 2012-05-03 19:40:55 -04:00
Christian Weeks 071d54feaf Implement addBiome, hopefully. Pushes biome list to the WorldType field. Sorry Bioxx. 2012-05-03 14:05:13 -04:00
Christian Weeks db1f432dbf Check in some eclipse crapola. 2012-05-03 14:04:16 -04:00
Christian Weeks 6ae8a2d5b9 Fix copied code. Derpbag. 2012-04-28 16:47:04 -04:00
Christian Weeks f1168856bd Update FML with recent mainline changes 2012-04-28 16:40:25 -04:00
Christian Weeks c3b0dca9b2 Merge branch 'master' into bukkit 2012-04-28 16:35:15 -04:00
Christian Weeks 12a928536a Fix a small issue with the build output script
Fix a significant issue with MLProp handling and primitives- they work now
2012-04-26 17:38:31 -04:00
Christian Weeks ef88519637 More text fixup 2012-04-19 23:07:07 -04:00
Christian Weeks e6a9eb7b91 Typos 2012-04-19 22:54:10 -04:00
Christian Weeks cf351c6118 Add in detection for MLMP and try to fail with a graceful message. 2012-04-19 22:40:59 -04:00
Christian Weeks e510cca030 Update bukkit with new mod fixes 2012-04-18 14:06:54 -04:00
Christian Weeks a6d6b739bd Merge branch 'master', remote-tracking branch 'origin' into bukkit 2012-04-18 14:04:39 -04:00
Christian Weeks e261ad1295 Tweak the loader a little bit to just use file names, not fully qualified directories when referring
to mods.
2012-04-18 14:03:30 -04:00
Christian Weeks b2b4551df8 Damn you bukkit with your same names for different classes!!!! EntityPlayer->EntityHuman 2012-04-16 01:00:06 -04:00
Christian Weeks 8800abf06c Fix chunk generators for bukkit 2012-04-15 22:42:06 -04:00
Christian Weeks 9fb72398b5 Merge branch 'master' into bukkit 2012-04-15 21:58:18 -04:00
Christian Weeks a08eefa261 Bukkit version 2012-04-14 23:01:03 -04:00
Christian Weeks 0ec65b4b3a Fix "soft" dependencies so they can exist properly 2012-04-14 10:01:55 -04:00
Christian e78688acdc Fix server patch 2012-04-10 23:05:22 -04:00
Christian 62b400c499 Merge in fixes from chickenbones for tick related problem
and straighten out variable naming in ModLoaderModContainer
2012-04-10 22:22:13 -04:00
Christian Weeks 44a5b7b929 Push the patched file, as well 2012-04-09 10:24:58 -04:00
Christian Weeks 2ae31bddd2 Add in more "Player" related events. Fix up some MLProp stuff 2012-04-09 10:18:24 -04:00
Christian Weeks f92149aef5 Fix regular expressions, thanks ChickenBones! 2012-04-09 09:19:20 -04:00
Christian Weeks 597b6f0d2c Tweak Console handler patch so we're more friendly to forge 2012-04-08 10:04:28 -04:00
Christian Weeks 33f1e26df4 A proper console command handler, also fix ordering of loaded mods 2012-04-08 09:55:56 -04:00
Christian Weeks 07437b95ae Add in a console command handler so you can access the command console 2012-04-08 02:00:57 -04:00
Christian Weeks 8fa4c1645c Don't send a register unless I have channels. Add the channel to the mod channels list. 2012-04-08 01:11:32 -04:00
Christian Weeks 83730ee9ec Split the packet salutation in two so we can work with or without forge 2012-04-08 00:18:37 -04:00
Christian Weeks 42aee9032f Add the player object to the onLogin event so you don't need to dive internals for it during login 2012-04-07 22:38:29 -04:00
Christian Weeks 331768b272 Call my handleLogin hook from NetLoginHandler, tweak output in server gui and log file. 2012-04-07 22:11:01 -04:00
Christian Weeks 0ae4c2e4a9 Fix subdirectory loading properly: mods will load inside eclipse.. 2012-04-06 16:14:01 -04:00
Christian Weeks 38094093b3 Actually figure out the path for directory class loading 2012-04-06 15:24:28 -04:00
Christian Weeks cd2be85575 regular expressions in java==fail 2012-04-06 15:03:41 -04:00
Christian Weeks b26bf5ab96 Recurse into subdirectories found 2012-04-06 14:43:12 -04:00
Christian Weeks 040a1d8cf7 Try multiple "jar" sources- for eclipse testing 2012-04-06 14:23:14 -04:00
Christian Weeks a858478b92 it's addURL not addUrl dumbo 2012-04-06 13:57:40 -04:00
Christian Weeks 9304420a2c it's getdeclaredmethod, dipstick 2012-04-06 13:47:01 -04:00
Christian Weeks 71a9bf9f70 Fix package private resolution of fields/methods from base minecraft by loading into minecraft's class loader not our own 2012-04-06 13:27:50 -04:00
Christian Weeks 21d11f431f Add in a missing client side method to modloader stubbed for the server 2012-04-06 12:24:52 -04:00
Christian Weeks 47a15f4c77 Add the hooks for crafting and smelting 2012-04-06 10:34:44 -04:00
Christian Weeks 765194e8db Should load from whatever minecraft comes from now... 2012-04-06 09:59:58 -04:00
Christian Weeks 55fe1aa1e3 Build should work now. Fix a stupid javadoc import. 2012-04-05 21:44:06 -04:00
Christian Weeks 09d37f87b0 New build script- version the src dist as well 2012-04-05 21:40:16 -04:00
Christian Weeks fc1dfa9cca Documentation: lots
Some eclipse workspace settings that might help?
2012-04-05 16:22:47 -04:00
Christian Weeks 8b1f984c53 Handle the minecraft object registry better- now the client compiles too
Also a quickie astyle run over the code..
2012-04-05 12:36:54 -04:00
Christian Weeks ae927a3cf8 Update the patches and fix the shell script 2012-04-05 11:42:33 -04:00
Christian Weeks 3b19792a12 Reorganize the code a little bit- move some stuff that was on FMLHandler to the common handler. Add a delegate
into the common handler that delegates to the right sided handler
2012-04-05 11:34:57 -04:00
Christian Weeks ebc532e3a9 Clean up extraneous print statements from the build 2012-04-05 10:42:15 -04:00
Christian Weeks 4470a808b1 Fix INSTALL-fml.txt file location in the server zip 2012-04-05 10:37:05 -04:00
Christian Weeks ba7f0a8429 Append a .class to the diff file list. Now you should just be able to iterate it and read every file in it directly. 2012-04-05 10:16:23 -04:00
Christian Weeks e828c1793d Run Astyle over the FML code. Happy lex? 2012-04-05 10:07:52 -04:00
Christian Weeks 011dd869de OK. Now the script works 2012-04-05 08:42:10 -04:00
Christian Weeks 21e55dc4c9 Crap at writing good python apparently 2012-04-05 08:29:07 -04:00
Christian Weeks 2ca5ccb861 Tweak file list script to print obf names 2012-04-05 08:25:04 -04:00
LexManos 6b4e73911b Merge remote-tracking branch 'origin/master' 2012-04-05 00:10:36 -07:00
LexManos 3478efe0d4 Rebuilt patches with new scripts. 2012-04-05 00:10:13 -07:00
LexManos 3a5c176af4 Cleaned up update_patches to fix a few bugs. Updated applypatches to normalize the patch file's line endings to make them work cross platform. Added download_firnflower and setup script. As well as added the GnuWin32's diff binary, so windows can create patches as well. http://gnuwin32.sourceforge.net/ 2012-04-05 00:09:29 -07:00
LexManos 9220174dbc Created eclipse workspace, should allow simple and quick access to working on FML 2012-04-05 00:06:11 -07:00
Christian Weeks 2489469aba Missed a couple of wording tweaks 2012-04-05 00:58:17 -04:00
Christian Weeks 11c3817779 Tweak the build a bit, add some more data and generate the
touched file list for forge
2012-04-04 11:05:31 -04:00
Christian Weeks 371d69f89c Tidy up some of the installation media 2012-04-04 09:48:36 -04:00
Christian Weeks b2555e4a50 links to implementation 2012-04-03 23:09:22 -04:00
Christian Weeks 3b0126d197 Channel validation 2012-04-03 22:45:27 -04:00
Christian Weeks 053552cdcc NetworkHandler doesn't care about channel ownership 2012-04-03 17:06:02 -04:00
Christian Weeks 5bd4f750bb Update patches for network handler 2012-04-03 17:04:57 -04:00
Christian Weeks 09efd147e1 Modloader complete 2012-04-03 17:04:26 -04:00
Christian Weeks cd255f4d6a Generic container 2012-04-03 16:12:19 -04:00
Christian Weeks 1e3cd7ca97 Config dir handling 2012-04-03 15:53:59 -04:00
Christian Weeks e243ffd1ce MLProp 2012-04-03 15:41:25 -04:00
Christian Weeks 35ece09cfa Mod sorting 2012-04-03 12:03:21 -04:00
Christian Weeks 971de1c2b4 Everything except ordering 2012-04-02 23:06:30 -04:00
Christian Weeks 9e404a48c5 Fix build script for generating md5s 2012-04-02 18:12:49 -04:00
Christian Weeks 63dbdd8db3 Update to 1.2.5 and hopefully forge compatibility 2012-04-02 18:09:06 -04:00
Christian Weeks 8e1f51d792 Forge support 2012-04-01 02:14:14 -04:00
Christian Weeks a8351a0e84 Initial attempts to support forge stuff 2012-03-31 02:28:14 -04:00
Christian Weeks ebf945f2bd Fix NPE 2012-03-31 01:04:29 -04:00
Christian Weeks e27f1c3a70 More logging and maybe fix default package mods 2012-03-31 00:59:43 -04:00
Christian Weeks 8091d8bdaf Logging fun. Whee! 2012-03-31 00:52:50 -04:00
Christian Weeks 281c455b5d Fail 2012-03-31 00:46:47 -04:00
Christian Weeks 44779a56b1 More logging 2012-03-31 00:43:54 -04:00
Christian Weeks f37c8ae4d7 Tweak class loader 2012-03-31 00:22:08 -04:00
Christian Weeks 41f469f495 Add more patches 2012-03-30 22:28:12 -04:00
Christian Weeks 28ac773c0a Some implementation 2012-03-30 22:26:16 -04:00
Christian Weeks 376d3995b4 tweak MC server hook 2012-03-30 21:23:04 -04:00
Christian Weeks cec16187c1 some build and logging tweaks 2012-03-30 21:21:43 -04:00
Christian Weeks f075e613e3 Fix build 2012-03-30 21:10:43 -04:00
Christian Weeks 7f985856ec Fix derpy 2012-03-30 21:07:42 -04:00
Christian Weeks d8580c2d02 Tweak loader a bit 2012-03-30 21:03:25 -04:00
Christian Weeks 12c23deee9 Fix patching 2012-03-30 20:43:58 -04:00
Christian Weeks e5b4d1e953 More build stuff 2012-03-30 20:38:31 -04:00
Christian Weeks 18069778d9 More building fun 2012-03-30 17:36:50 -04:00
Christian Weeks ba46c2e3bc fix build script 2012-03-30 17:00:49 -04:00
Christian Weeks c521479962 Add in more ignore stuff and a sample "fmlbuild.properties" file 2012-03-30 16:42:11 -04:00
Christian Weeks 620764f315 More build stuff, adding in readme etc copied from forge 2012-03-30 16:40:54 -04:00
Christian Weeks d97aaa4e82 Move more stuff around 2012-03-30 16:25:49 -04:00
Christian Weeks c7437f3a3b Build system 2012-03-30 16:22:10 -04:00
Christian Weeks cc65a26a89 Start patching fun 2012-03-30 13:33:29 -04:00
Christian Weeks 3afd52ac9d Ignore stuff 2012-03-30 11:35:35 -04:00
Christian Weeks efa8cf41b2 We're Forge Mod Loader, not Forge ModLoader 2012-03-30 11:35:04 -04:00
Christian Weeks b71f486837 Tweak license to refer to github 2012-03-30 10:16:36 -04:00
Christian Weeks 2edeba5af4 Add licenses reorganize code 2012-03-30 10:11:13 -04:00
Christian Weeks 7b3fb203fc Starting to get somewhere 2012-03-30 01:12:59 -04:00
Christian Weeks 62cca5a4b7 Thoughts on how to do the modloading properly 2012-03-28 16:44:36 -04:00
Christian Weeks 0cc2bc1923 Tab cleanup 2012-03-28 13:29:23 -04:00
Christian Weeks 7c30c12f9f Initial commit 2012-03-28 12:53:08 -04:00
1005 changed files with 119516 additions and 16809 deletions

No files matched your search

+9 -2
View File
@@ -1,7 +1,14 @@
* text eol=lf
*.bat text eol=crlf
*.patch text
*.patch text eol=lf
*.java text eol=lf
*.gradle text eol=crlf
*.png binary
*.exe binary
*.dll binary
*.zip binary
*.jar binary
*.lzma binary
*.zip binary
*.pyd binary
*.cfg text eol=lf
*.py text eol=lf
+22 -6
View File
@@ -1,7 +1,23 @@
*.DS_Store
/logs/
/*.pyc
/forge-*/
/patches-old/
/mcp/
#eclipse
/bin
/.settings
/.classpath
#idea
/.idea
*.iml
#gradle
/build
/.gradle
#occupational hazards
/eclipse/
/repo/
/buildSrc
#Patch rejects
*.rej
/patches-/
# FML changelog
changelog.txt
-3
View File
@@ -1,3 +0,0 @@
[submodule "fml"]
path = fml
url = https://github.com/MinecraftForge/FML.git
+10
View File
@@ -0,0 +1,10 @@
Contributing to Forge
=====================
1) Keep patches to Minecraft classes minimal. If you need a lot of things done, you may either add to relevant forge classes or make a new class.
2) An example mod must be provided for all PRs adding events/hooks to Forge. Whether it's a full mod using your proposed hooks, or just a pastebin containing a simple example, an example mod is required. Please also explain in detail what your new hook does.
3) Follow Forge coding guidelines (braces on newlines, spaces instead of tabs, etc)
For more information, refer to [the wiki](https://github.com/MinecraftForge/MinecraftForge/wiki/If-you-want-to-contribute-to-Forge)
-6
View File
@@ -1,6 +0,0 @@
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.2
Created-By: 1.7.0_09-b30 (Oracle Corporation)
Main-Class: net.minecraft.server.MinecraftServer
Class-Path: minecraft_server.jar
File renamed without changes.
@@ -24,9 +24,9 @@ the Minecraft sources that are required to have Minecraft Forge working.
1. Scope
--------
The present license is granted to any user of Minecraft Forge. As a
prerequisite, a user of Minecraft Forge must own a legally aquired copy of
Minecraft
The present license is granted to any user of Minecraft Forge, for all files included
unless stated otherwise in the file itself. As a prerequisite, a user of Minecraft
Forge must own a legally aquired copy of Minecraft.
2. Play rights
--------------
+36
View File
@@ -0,0 +1,36 @@
*** HOW TO INSTALL ***
For Mod Users:
Download the latest installer from http://files.minecraftforge.net and follow instructions given by the installer.
For Mod Devs:
Download the latest Forge source distribution from http://files.minecraftforge.net and unzip it to a folder.
Open a command prompt, navigate to the directory where you unzipped the Forge sources, and run:
If you have Gradle: gradle setupDevWorkspace
If you DO NOT have Gradle installed:
Windows: ./gradlew.bat setupDevWorkspace
MacOS/Linux: ./gradlew setupDevWorkspace
If you wish to use the Eclipse IDE, run gradle eclipse instead of gradle setupDevWorkspace, or install the Gradle plugin for Eclipse and import the Forge source folder as a Gradle project.
To get the decompiled classes:
If you have Gradle: gradle setupDecompWorkspace
If you DO NOT have Gradle installed:
Windows: ./gradlew.bat setupDecompWorkspace
MacOS/Linux: ./gradlew setupDecompWorkspace
For Contributors: (Note: This assumes you have Gradle installed. If you don't, use ./gradlew(.bat) instead of gradle.
Clone this repository to a folder.
Open a command prompt and navigate to the folder where you cloned this repo.
Run gradle setupForge to setup your development environment.
To use Eclipse, point your Eclipse workspace at the eclipse folder inside the repo.
Requirements (for both mod devs and contributors):
You must have a JDK installed and accessible.
If you do not wish to use the gradle wrapper, you can install Gradle from http://www.gradle.org/ .
+127
View File
@@ -0,0 +1,127 @@
buildscript {
repositories {
mavenCentral()
mavenLocal()
maven {
name = "forge"
url = "http://files.minecraftforge.net/maven"
}
maven {
name = "sonatype"
url = "https://oss.sonatype.org/content/repositories/snapshots/"
}
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
}
}
configurations {
deployJars
}
import static net.minecraftforge.gradle.dev.ForgeDevPlugin.*
apply plugin: 'maven'
apply plugin: 'forgedev'
repositories {
mavenLocal()
flatDir {
name "fileRepo"
dirs "repo"
}
}
minecraft {
version = '1.7.10'
mcpVersion = '9.05'
fmlDir = projectDir.getAbsolutePath() + "/fml";
mainClass = 'cpw.mods.fml.relauncher.ServerLaunchWrapper'
tweakClass = 'cpw.mods.fml.common.launcher.FMLTweaker'
installerVersion = "1.4"
}
group = 'net.minecraftforge'
version = getVersionFromJava(getProject(), 'src/main/java/net/minecraftforge/common/ForgeVersion.java')
jenkins {
job = 'minecraftforge'
}
// crowdin stuff
if (project.hasProperty("crowdinKey"))
tasks.getLocalizations.apiKey = project.crowdinKey
launch4j {
jreMinVersion = '1.6.0'
}
uploadArchives {
repositories {
add getProject().repositories.mavenLocal()
}
repositories.mavenDeployer {
configuration = configurations.deployJars
if (project.hasProperty("filesmaven")) {
logger.info('Publishing to files server')
repository(url: project.filesmaven.url) {
authentication(userName: project.filesmaven.username, privateKey: project.filesmaven.key)
}
} else {
logger.info('Publishing to repo folder')
repository(url: 'file://localhost/' + project.file('repo').getAbsolutePath())
}
pom {
groupId = project.group
version = project.version
artifactId = project.archivesBaseName
}
pom.project {
name project.archivesBaseName
packaging 'jar'
description 'Minecraft Forge API'
url 'https://github.com/MinecraftForge/MinecraftForge'
scm {
url 'https://github.com/MinecraftForge/MinecraftForge'
connection 'scm:git:git://github.com/MinecraftForge/MinecraftForge.git'
developerConnection 'scm:git:[email protected]:MinecraftForge/MinecraftForge.git'
}
issueManagement {
system 'github'
url 'https://github.com/MinecraftForge/MinecraftForge/issues'
}
licenses {
license {
name 'Forge Public License'
url 'https://raw.github.com/MinecraftForge/MinecraftForge/master/MinecraftForge-License.txt'
distribution 'repo'
}
}
developers {
developer {
id 'cpw'
name 'cpw'
roles { role 'developer' }
}
developer {
id 'LexManos'
name 'Lex Manos'
roles { role 'developer' }
}
developer {
id 'AbrarSyed'
name 'Abrar Syed'
roles { role 'contributor' }
}
}
}
}
}
-34
View File
@@ -1,34 +0,0 @@
import os, os.path, sys
from optparse import OptionParser
forge_dir = os.path.dirname(os.path.abspath(__file__))
mcp_dir = os.path.abspath('..')
from forge import build_forge_dev
def main():
parser = OptionParser()
parser.add_option('-m', '--mcp-dir', action='store', dest='mcp_dir', help='MCP Path', default=None)
parser.add_option('-b', '--build', action='store', dest='build', help='Build number', default=None)
options, _ = parser.parse_args()
build_num = 0
if not options.build is None:
try:
build_num = int(options.build)
except:
pass
fml_dir = os.path.join(forge_dir, 'fml')
mcp_dir = os.path.join(forge_dir, 'mcp')
if not options.mcp_dir is None:
mcp_dir = os.path.abspath(options.mcp_dir)
elif os.path.isfile(os.path.join('..', 'runtime', 'commands.py')):
mcp_dir = os.path.abspath('..')
sys.exit(build_forge_dev(mcp_dir, forge_dir, fml_dir, build_num))
if __name__ == '__main__':
main()
-89
View File
@@ -1,89 +0,0 @@
import os, os.path, sys, re
import json, urllib2
from pprint import pprint
from urlparse import urlparse
import base64
import optparse, ast
class PreemptiveBasicAuthHandler(urllib2.BaseHandler):
def __init__(self, password_mgr=None):
if password_mgr is None:
password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
self.passwd = password_mgr
self.add_password = self.passwd.add_password
def http_request(self,req):
uri = req.get_full_url()
user, pw = self.passwd.find_user_password(None,uri)
if pw is None: return req
raw = "%s:%s" % (user, pw)
auth = 'Basic %s' % base64.b64encode(raw).strip()
req.add_unredirected_header('Authorization', auth)
return req
def https_request(self,req):
return self.http_request(req)
def getBuildInfo(url, current_version=None):
handler = PreemptiveBasicAuthHandler()
handler.add_password(None, 'jenkins.minecraftforge.net:81', 'console_script', 'fd584bffa72fcac12181f37f80001200')
file = urllib2.build_opener(handler).open(url)
data = file.read()
file.close()
data = ast.literal_eval(data)['allBuilds']
data = sorted(data, key=lambda key: key['number'], reverse=False)
items = []
output = []
for build in data:
build['actions'] = filter(lambda act: act is not None, build['actions'])
build['actions'] = filter(lambda act: 'text' in act, build['actions'])
build['actions'] = filter(lambda act: not ' ' in act['text'], build['actions'])
if len(build['actions']) == 0:
build['version'] = current_version
current_version = None
else:
build['version'] = build['actions'][0]['text']
build['items'] = build['changeSet']['items']
for item in build['items']:
item['author'] = item['author']['fullName']
if build['result'] != 'SUCCESS':
items += build['items']
else:
build['items'] = items + build['items']
items = []
output += [build]
build.pop('changeSet')
build.pop('actions')
return sorted(output, key=lambda key: key['number'], reverse=True)
def make_changelog(job_path, target_build, change_file, current_version=None):
builds = getBuildInfo('%s/api/python?tree=allBuilds[result,number,actions[text],changeSet[items[author[fullName],comment]]]&pretty=true' % job_path, current_version)
log = [ "Changelog:" ]
for build in builds:
if int(build['number']) > target_build: continue
if len(build['items']) == 0: continue
log.append('')
if build['version'] is None:
log.append('Build %s' % build['number'])
else:
log.append('Build %s' % build['version'])
for change in build['items']:
comments = filter(lambda cmt: len(cmt) > 0, change['comment'].split('\n'))
if len(comments) > 1:
log.append('\t' + change['author'])
for comment in comments:
log.append('\t\t' + comment)
elif len(comments) == 1:
log.append('\t%s: %s' % (change['author'], comments[0]))
file = open(change_file, 'wb')
for line in log:
file.write('%s\n' % line)
file.close()
if __name__ == '__main__':
make_changelog("http://jenkins.minecraftforge.net:81/job/minecraftforge/", 70000, 'changelog.txt', 'pinecone')
@@ -1,44 +0,0 @@
package net.minecraftforge.client;
import net.minecraft.world.EnumGameType;
import net.minecraft.util.EnumOS;
import net.minecraft.client.settings.EnumOptions;
import net.minecraft.item.EnumRarity;
import net.minecraftforge.common.EnumHelper;
public class EnumHelperClient extends EnumHelper
{
private static Class[][] clentTypes =
{
{EnumGameType.class, int.class, String.class},
{EnumOptions.class, String.class, boolean.class, boolean.class},
{EnumOS.class},
{EnumRarity.class, int.class, String.class}
};
public static EnumGameType addGameType(String name, int id, String displayName)
{
return addEnum(EnumGameType.class, name, id, displayName);
}
public static EnumOptions addOptions(String name, String langName, boolean isSlider, boolean isToggle)
{
return addEnum(EnumOptions.class, name, langName, isSlider, isToggle);
}
public static EnumOS addOS2(String name)
{
return addEnum(EnumOS.class, name);
}
public static EnumRarity addRarity(String name, int color, String displayName)
{
return addEnum(EnumRarity.class, name, color, displayName);
}
public static <T extends Enum<? >> T addEnum(Class<T> enumType, String enumName, Object... paramValues)
{
return addEnum(clentTypes, enumType, enumName, paramValues);
}
}
@@ -1,127 +0,0 @@
package net.minecraftforge.client;
import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.GL11;
import net.minecraft.client.Minecraft;
import net.minecraft.client.settings.GameSettings;
import net.minecraft.client.gui.GuiControls;
import net.minecraft.client.gui.GuiSlot;
import net.minecraft.client.settings.KeyBinding;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.util.EnumChatFormatting;
public class GuiControlsScrollPanel extends GuiSlot
{
private GuiControls controls;
private GameSettings options;
private Minecraft mc;
private String[] message;
private int _mouseX;
private int _mouseY;
private int selected = -1;
public GuiControlsScrollPanel(GuiControls controls, GameSettings options, Minecraft mc)
{
super(mc, controls.width, controls.height, 16, (controls.height - 32) + 4, 25);
this.controls = controls;
this.options = options;
this.mc = mc;
}
@Override
protected int getSize()
{
return options.keyBindings.length;
}
@Override
protected void elementClicked(int i, boolean flag)
{
if (!flag)
{
if (selected == -1)
{
selected = i;
}
else
{
options.setKeyBinding(selected, -100);
selected = -1;
KeyBinding.resetKeyBindingArrayAndHash();
}
}
}
@Override
protected boolean isSelected(int i)
{
return false;
}
@Override
protected void func_130003_c() {}
@Override
public void drawScreen(int mX, int mY, float f)
{
_mouseX = mX;
_mouseY = mY;
if (selected != -1 && !Mouse.isButtonDown(0) && Mouse.getDWheel() == 0)
{
if (Mouse.next() && Mouse.getEventButtonState())
{
System.out.println(Mouse.getEventButton());
options.setKeyBinding(selected, -100 + Mouse.getEventButton());
selected = -1;
KeyBinding.resetKeyBindingArrayAndHash();
}
}
super.drawScreen(mX, mY, f);
}
@Override
protected void drawSlot(int index, int xPosition, int yPosition, int l, Tessellator tessellator)
{
int width = 70;
int height = 20;
xPosition -= 20;
boolean flag = _mouseX >= xPosition && _mouseY >= yPosition && _mouseX < xPosition + width && _mouseY < yPosition + height;
int k = (flag ? 2 : 1);
mc.renderEngine.func_110577_a(TextureMap.field_110576_c);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
controls.drawTexturedModalRect(xPosition, yPosition, 0, 46 + k * 20, width / 2, height);
controls.drawTexturedModalRect(xPosition + width / 2, yPosition, 200 - width / 2, 46 + k * 20, width / 2, height);
controls.drawString(mc.fontRenderer, options.getKeyBindingDescription(index), xPosition + width + 4, yPosition + 6, 0xFFFFFFFF);
boolean conflict = false;
for (int x = 0; x < options.keyBindings.length; x++)
{
if (x != index && options.keyBindings[x].keyCode == options.keyBindings[index].keyCode)
{
conflict = true;
break;
}
}
String str = (conflict ? EnumChatFormatting.RED : "") + options.getOptionDisplayString(index);
str = (index == selected ? EnumChatFormatting.WHITE + "> " + EnumChatFormatting.YELLOW + "??? " + EnumChatFormatting.WHITE + "<" : str);
controls.drawCenteredString(mc.fontRenderer, str, xPosition + (width / 2), yPosition + (height - 8) / 2, 0xFFFFFFFF);
}
public boolean keyTyped(char c, int i)
{
if (selected != -1)
{
options.setKeyBinding(selected, i);
selected = -1;
KeyBinding.resetKeyBindingArrayAndHash();
return false;
}
return true;
}
}
@@ -1,14 +0,0 @@
package net.minecraftforge.client.event;
import net.minecraftforge.event.Cancelable;
import net.minecraftforge.event.Event;
@Cancelable
public class ClientChatReceivedEvent extends Event
{
public String message;
public ClientChatReceivedEvent(String message)
{
this.message = message;
}
}
@@ -1,33 +0,0 @@
package net.minecraftforge.client.event;
import net.minecraft.client.renderer.entity.RendererLivingEntity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraftforge.event.Cancelable;
import net.minecraftforge.event.Event;
public abstract class RenderLivingEvent extends Event
{
public final EntityLivingBase entity;
public final RendererLivingEntity renderer;
public RenderLivingEvent(EntityLivingBase entity, RendererLivingEntity renderer)
{
this.entity = entity;
this.renderer = renderer;
}
public abstract static class Specials extends RenderLivingEvent
{
public Specials(EntityLivingBase entity, RendererLivingEntity renderer){ super(entity, renderer); }
@Cancelable
public static class Pre extends Specials
{
public Pre(EntityLivingBase entity, RendererLivingEntity renderer){ super(entity, renderer); }
}
public static class Post extends Specials
{
public Post(EntityLivingBase entity, RendererLivingEntity renderer){ super(entity, renderer); }
}
}
}
@@ -1,20 +0,0 @@
package net.minecraftforge.client.event.sound;
import net.minecraft.client.audio.SoundManager;
public class PlaySoundSourceEvent extends SoundEvent
{
public final SoundManager manager;
public final String name;
public final float x;
public final float y;
public final float z;
public PlaySoundSourceEvent(SoundManager manager, String name, float x, float y, float z)
{
this.manager = manager;
this.name = name;
this.x = x;
this.y = y;
this.z = z;
}
}
@@ -1,20 +0,0 @@
package net.minecraftforge.client.event.sound;
import net.minecraft.client.audio.SoundManager;
public class PlayStreamingSourceEvent extends SoundEvent
{
public final SoundManager manager;
public final String name;
public final float x;
public final float y;
public final float z;
public PlayStreamingSourceEvent(SoundManager manager, String name, float x, float y, float z)
{
this.manager = manager;
this.name = name;
this.x = x;
this.y = y;
this.z = z;
}
}
@@ -1,19 +0,0 @@
package net.minecraftforge.client.event.sound;
import net.minecraft.entity.Entity;
import net.minecraft.client.audio.SoundManager;
import net.minecraft.client.audio.SoundPoolEntry;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.Cancelable;
import net.minecraftforge.event.Event;
public class SoundEvent extends Event
{
public SoundEvent(){}
public static SoundPoolEntry getResult(SoundResultEvent event)
{
MinecraftForge.EVENT_BUS.post(event);
return event.result;
}
}
@@ -1,9 +0,0 @@
package net.minecraftforge.client.model;
public interface IModelCustom {
String getType();
void renderAll();
void renderPart(String partName);
}
-162
View File
@@ -1,162 +0,0 @@
#Main Forge Access Transformer configuration file
# Tessellator
public-f bff.a #FD:Tessellator/field_78398_a #instance
public bff.u #FD:Tessellator/field_78409_u #drawMode
public bff.v #FD:Tessellator/field_78408_v #xOffset
public bff.w #FD:Tessellator/field_78407_w #yOffset
public bff.x #FD:Tessellator/field_78417_x #zOffset
public bff.z #FD:Tessellator/field_78415_z #isDrawing
# ItemPickaxe
public yi.<init>(ILxy;)V #MD:ItemPickaxe/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor
public+f yi.c #FD:ItemPickaxe/field_77867_c #blocksEffectiveAgainst
# ItemAxe
public xv.<init>(ILxy;)V #MD:ItemAxe/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor
public+f xv.c #FD:ItemAxe/field_77868_c #blocksEffectiveAgainst
# ItemSpade
public yt.<init>(ILxy;)V #MD:ItemSpade/<init>(ILnet/minecraft/src/EnumToolMaterial;) #constructor
public+f yt.c #FD:ItemSpade/field_77866_c #blocksEffectiveAgainst
# ItemTool
public xe.a #FD:ItemTool/field_77864_a #efficiencyOnProperMaterial
public xe.d #FD:ItemTool/field_77865_bY #damageVsEntity
# EntityEnderman
public td.br #FD:EntityEnderman/field_70827_d #carriableBlocks
# RenderEngine
# -- MISSING MAPPING public bge.f(Ljava/lang/String;)I #MD:RenderEngine/func_78341_b #getTexture
# -- MISSING MAPPING public bge.i #FD:RenderEngine/field_94154_l #terrainTextureMap
# -- MISSING MAPPING public bge.j #FD:RenderEngine/field_94155_m #itemTextureMap
# RenderGlobal
public bfa.k #FD:RenderGlobal/field_72769_h #theWorld
public bfa.l #FD:RenderGlobal/field_72770_i #renderEngine
public bfa.t #FD:RenderGlobal/field_72777_q #mc
public bfa.u #FD:RenderGlobal/field_72776_r #globalRenderBlocks
public bfa.H #FD:RenderGlobal/field_72738_E #damagedBlocks
# SoundManager
public blc.b #FD:SoundManager/field_77381_a #sndSystem
public blc.d #FD:SoundManager/field_77379_b #soundPoolSounds
public blc.e #FD:SoundManager/field_77380_c #soundPoolStreaming
public blc.f #FD:SoundManager/field_77377_d #soundPoolMusic
# EntityMinecart
protected sq.* #FD:EntityMinecart/* # All private -> protected
# -- MISSING MAPPING public py.h()Z #MD:EntityMinecart/func_70490_h #isMinecartPowered
# Block
public aqs.<init>(ILajv;)V #MD:Block/<init>(ILnet/minecraft/src/Material;) #Constructor
public aqs.<init>(IILajv;)V #MD:Block/<init>(IILnet/minecraft/src/Material;) #Constructor
public aqs.cH #FD:Block/field_72029_cc #blockResistance
public aqs.cG #FD:Block/field_71989_cb #blockHardness
# -- MISSING MAPPING public amq.r()Lamq; #MD:Block/func_71912_p #setRequiresSelfNotify
public aqs.a(Laqw;)Laqs; #MD:Block/func_71884_a #setStepSound
public aqs.b(F)Laqs; #MD:Block/func_71894_b #setResistance
public aqs.c(F)Laqs; #MD:Block/func_71848_c #setHardness
public aqs.k(I)Laqs; #MD:Block/func_71868_h #setLightOpacity
public aqs.a(F)Laqs; #MD:Block/func_71900_a #setLightValue
public aqs.r()Laqs; #MD:Block/func_71875_q #setBlockUnbreakable
public aqs.b(Z)Laqs; #MD:Block/func_71907_b #setTickRandomly
public aqs.a(FFFFFF)V #MD:Block/func_71905_a #setBlockBounds
# NetServerHandler
public jx.f #FD:NetServerHandler/field_72572_g #playerInAirTime
# TileEntity
public asi.k #FD:TileEntity/field_70331_k #worldObj
# BlockLeavesBase
public ara.d #FD:BlockLeavesBase/field_72131_c #graphicsLevel
# Item
public xx.<init>(I)V #MD:Item/<init>(I) #Constructor
public xx.e(I)Lxx; #MD:Item/func_77656_e #setMaxDamage
public-f xx.h(Lxz;)Lmp; #MD:Item/func_77650_f #getIconIndex
public xx.c(Ljava/lang/String;)Lxx; #MD:Item/func_77631_c #setPotionEffect
# RailLogic
public ams #CL:BlockBaseRailLogic
public ams.a()I #MD:BlockBaseRailLogic/func_94505_a #getNAdjacentTiles
# EntityPlayer
public ua.a(Lsp;)V #MD:EntityPlayer/func_71012_a #joinEntityItemWithWorld
public ua.i()V #MD:EntityPlayer/func_71053_j #closeScreen
public ua.b #FD:EntityPlayer/field_71076_b #sleepTimer
# EntityPlayerMP
public bcx.a(Lsp;)V #MD:EntityClientPlayerMP/func_71012_a #joinEntityItemWithWorld
# World Gen Chests Related
public mh.* #FD:WeightedRandomChestContent/* #all
public jp.T #FD:WorldServer/field_73069_S #bonusChestContent
public agc.a #FD:StructureMineshaftPieces/field_78818_a #mineshaftChestContents
public ahg.i #FD:ComponentScatteredFeatureDesertPyramid/field_74941_i #itemsToGenerateInTemple
public ahh.l #FD:ComponentScatteredFeatureJunglePyramid/field_74943_l #junglePyramidsChestContents
public ahh.m #FD:ComponentScatteredFeatureJunglePyramid/field_74944_m #junglePyramidsDispenserContents
public ahr.a #FD:ComponentStrongholdChestCorridor/field_75003_a #strongholdChestContents
public ahv.b #FD:ComponentStrongholdLibrary/field_75007_b #strongholdLibraryChestContents
public aia.c #FD:ComponentStrongholdRoomCrossing/field_75014_c #strongholdCorridorChestContents
public ajb.a #FD:ComponentVillageHouse2/field_74918_a #villageBlacksmithChestContents
# AnvilChunkLoader.chunkSaveLocation
public adz.d #FD:AnvilChunkLoader/field_75825_d
# ChunkProviderServer.currentChunkLoader
public jo.e #FD:ChunkProviderServer/field_73247_e
# PlayerManager
public jm.a(IIZ)Ljn; #MD:PlayerManager/func_72690_a #getOrCreateChunkWatcher
# PlayerInstance
public jn #CL:PlayerInstance
# World
public-f abr.A #FD:World/field_72982_D #villageCollectionObj
public abr.G #FD:World/field_72993_I #activeChunkSet
# EntityLiving
public od.b #FD:EntityLiving/field_70728_aV #experienceValue
# -- MISSING MAPPING public ng.bt #FD:EntityLiving/field_94063_bt #combatTracker
public od.d #FD:EntityLiving/field_70715_bh #targetTasks
# GuiFlatPresets
public avq.a(Ljava/lang/String;ILacl;Ljava/util/List;[Lafy;)V #MD:GuiFlatPresets/func_82294_a
public avq.a(Ljava/lang/String;ILacl;[Lafy;)V #MD:GuiFlatPresets/func_82297_a
# BiomeGenBase
public acl.*() #MD:BiomeGenBase/* #Everything protected->public
# MapGenVillage
public-f aip.e #FD:MapGenVillage/field_75055_e #villageSpawnBiomes
# ShapedRecipes
public+f aad.d #FD:ShapedRecipes/field_77574_d #recipeItems
public+f aad.b #FD:ShapedRecipes/field_77576_b #recipeWidth
public+f aad.c #FD:ShapedRecipes/field_77577_c #recipeHeight
# ShapelessRecipes
public aae.b #FD:ShapelessRecipes/field_77579_b #recipeItems
# GuiContainer
protected awp.a(Lvz;)V #MD:GuiContainer/func_74192_a #drawSlotInventory
# ContainerPlayer
protected vq.h #FD:ContainerPlayer/field_82862_h #player
# BlockButton
protected amy.n(Labr;III)V #MD:BlockButton/func_82535_o #checkActivation
protected-f amy.a #FD:BlockButton/field_82537_a #sensible
# BiomeDecorator
public acp.* #FD:BiomeDecorator/* # All private -> protected
# CreativeTabs
public-f wr.a #FD:CreativeTabs/field_78032_a # creativeTabArray non-final
# Packet
public ex.a(IZZLjava/lang/Class;)V #MD:Packet/func_73285_a #addIdClassMapping
# SaveHandler
public alj.b()Ljava/io/File; #MD:SaveHandler/func_75765_b
# World stuff
public abr.b(Lnk;)V #MD:World/func_72847_b #releaseEntitySkin
public abr.m #FD:World/field_73003_n #prevRainingStrength
public abr.n #FD:World/field_73004_o #rainingStrength
public abr.p #FD:World/field_73017_q #thunderingStrength
public abr.o #FD:World/field_73018_p #prevThunderingStrength
#WorldClient
public bcu.b(Lnk;)V #MD:WorldClient/func_72847_b #releaseEntitySkin
#WorldServer
public jp.b(Lnk;)V #MD:WorldServer/func_72847_b #releaseEntitySkin
public jp.N #FD:WorldServer/field_73068_P #allPlayersSleeping
#TextureMap
public bhz.g #FD:TextureMap/field_94255_a
# -- MISSING MAPPING public bir.b #FD:TextureMap/field_94253_b
public bhz.h #FD:TextureMap/field_94254_c
# -- MISSING MAPPING public bir.d #FD:TextureMap/field_94251_d
#Potion
public nf.b(II)Lnf; #MD:Potion/func_76399_b #setIconIndex
#PotionHelper
public zk.m #FD:PotionHelper/field_77927_l #potionRequirements
public zk.n #FD:PotionHelper/field_77928_m #potionAmplifiers
#PotionEffect
public ng.b #FD:PotionEffect/field_76460_b #duration
#BlockFluid
protected aov.a #FD:BlockFluid/field_94425_a #theIcon
#GuiIngame
protected ava.* #FD:GuiIngame/* # All private -> protected
protected ava.*() #MD:GuiIngame/* # All private -> protected
#ItemStack
default xz.f #FD:ItemStack/field_77991_e # make default access for itemDamage
#GuiSlot
protected avx.b(IIII)V #MD:GuiSlot/func_77206_b #overlayBackground
#EntityPlayer
public ua.bu #FD:EntityPlayer/field_71092_bJ #username
@@ -1,301 +0,0 @@
package net.minecraftforge.common;
import java.util.*;
import net.minecraft.world.biome.*;
import static net.minecraft.world.biome.BiomeGenBase.*;
import static net.minecraftforge.common.BiomeDictionary.Type.*;
public class BiomeDictionary
{
public enum Type
{
FOREST,
PLAINS,
MOUNTAIN,
HILLS,
SWAMP,
WATER,
DESERT,
FROZEN,
JUNGLE,
WASTELAND,
BEACH,
NETHER,
END,
MUSHROOM,
MAGICAL;
}
private static final int BIOME_LIST_SIZE = 256;
private static BiomeInfo[] biomeList = new BiomeInfo[BIOME_LIST_SIZE];
private static ArrayList<BiomeGenBase>[] typeInfoList = new ArrayList[Type.values().length];
private static class BiomeInfo
{
public EnumSet<Type> typeList;
public BiomeInfo(Type[] types)
{
typeList = EnumSet.noneOf(Type.class);
for(Type t : types)
{
typeList.add(t);
}
}
}
static
{
registerVanillaBiomes();
}
/**
* Registers a biome with a specific biome type
*
* @param biome the biome to be registered
* @param type the type to register the biome as
* @return returns true if the biome was registered successfully
*/
public static boolean registerBiomeType(BiomeGenBase biome, Type ... types)
{
if(BiomeGenBase.biomeList[biome.biomeID] != null)
{
for(Type type : types)
{
if(typeInfoList[type.ordinal()] == null)
{
typeInfoList[type.ordinal()] = new ArrayList<BiomeGenBase>();
}
typeInfoList[type.ordinal()].add(biome);
}
if(biomeList[biome.biomeID] == null)
{
biomeList[biome.biomeID] = new BiomeInfo(types);
}
else
{
for(Type type : types)
{
biomeList[biome.biomeID].typeList.add(type);
}
}
return true;
}
return false;
}
/**
* Returns a list of biomes registered with a specific type
*
* @param type the Type to look for
* @return a list of biomes of the specified type, null if there are none
*/
public static BiomeGenBase[] getBiomesForType(Type type)
{
if(typeInfoList[type.ordinal()] != null)
{
return (BiomeGenBase[])typeInfoList[type.ordinal()].toArray(new BiomeGenBase[0]);
}
return new BiomeGenBase[0];
}
/**
* Gets a list of Types that a specific biome is registered with
*
* @param biome the biome to check
* @return the list of types, null if there are none
*/
public static Type[] getTypesForBiome(BiomeGenBase biome)
{
checkRegistration(biome);
if(biomeList[biome.biomeID] != null)
{
return (Type[])biomeList[biome.biomeID].typeList.toArray(new Type[0]);
}
return new Type[0];
}
/**
* Checks to see if two biomes are registered as having the same type
*
* @param biomeA
* @param biomeB
* @return returns true if a common type is found, false otherwise
*/
public static boolean areBiomesEquivalent(BiomeGenBase biomeA, BiomeGenBase biomeB)
{
int a = biomeA.biomeID;
int b = biomeB.biomeID;
checkRegistration(biomeA);
checkRegistration(biomeB);
if(biomeList[a] != null && biomeList[b] != null)
{
for(Type type : biomeList[a].typeList)
{
if(containsType(biomeList[b], type))
{
return true;
}
}
}
return false;
}
/**
* Checks to see if the given biome is registered as being a specific type
*
* @param biome the biome to be considered
* @param type the type to check for
* @return returns true if the biome is registered as being of type type, false otherwise
*/
public static boolean isBiomeOfType(BiomeGenBase biome, Type type)
{
checkRegistration(biome);
if(biomeList[biome.biomeID] != null)
{
return containsType(biomeList[biome.biomeID], type);
}
return false;
}
/**
* Checks to see if the given biome has been registered as being of any type
* @param biome the biome to consider
* @return returns true if the biome has been registered, false otherwise
*/
public static boolean isBiomeRegistered(BiomeGenBase biome)
{
return biomeList[biome.biomeID] != null;
}
public static boolean isBiomeRegistered(int biomeID)
{
return biomeList[biomeID] != null;
}
/**
* Loops through the biome list and automatically adds tags to any biome that does not have any
* This should be called in postInit to make sure all biomes have been registered
*
* DO NOT call this during world generation
*/
public static void registerAllBiomes()
{
for(int i = 0; i < BIOME_LIST_SIZE; i++)
{
if(BiomeGenBase.biomeList[i] != null)
{
checkRegistration(BiomeGenBase.biomeList[i]);
}
}
}
/**
* Automatically looks for and registers a given biome with appropriate tags
* This method is called automatically if a biome has not been registered with any tags,
* And another method requests information about it
*
* NOTE: You can opt out of having your biome registered by registering it as type NULL
*
* @param biome the biome to be considered
*/
public static void makeBestGuess(BiomeGenBase biome)
{
if(biome.theBiomeDecorator.treesPerChunk >= 3)
{
if(biome.isHighHumidity() && biome.temperature >= 1.0F)
{
BiomeDictionary.registerBiomeType(biome, JUNGLE);
}
else if(!biome.isHighHumidity())
{
BiomeDictionary.registerBiomeType(biome, FOREST);
}
}
else if(biome.maxHeight <= 0.3F && biome.maxHeight >= 0.0F)
{
if(!biome.isHighHumidity() || biome.minHeight >= 0.0F)
{
BiomeDictionary.registerBiomeType(biome, PLAINS);
}
}
if(biome.isHighHumidity() && biome.minHeight < 0.0F && (biome.maxHeight <= 0.3F && biome.maxHeight >= 0.0F))
{
BiomeDictionary.registerBiomeType(biome, SWAMP);
}
if(biome.minHeight <= -0.5F)
{
BiomeDictionary.registerBiomeType(biome, WATER);
}
if(biome.maxHeight >= 1.5F)
{
BiomeDictionary.registerBiomeType(biome, MOUNTAIN);
}
if(biome.getEnableSnow() || biome.temperature < 0.2F)
{
BiomeDictionary.registerBiomeType(biome, FROZEN);
}
if(!biome.isHighHumidity() && biome.temperature >= 1.0F)
{
BiomeDictionary.registerBiomeType(biome, DESERT);
}
}
//Internal implementation
private static void checkRegistration(BiomeGenBase biome)
{
if(!isBiomeRegistered(biome))
{
makeBestGuess(biome);
}
}
private static boolean containsType(BiomeInfo info, Type type)
{
return info.typeList.contains(type);
}
private static void registerVanillaBiomes()
{
registerBiomeType(ocean, WATER );
registerBiomeType(plains, PLAINS );
registerBiomeType(desert, DESERT );
registerBiomeType(extremeHills, MOUNTAIN );
registerBiomeType(forest, FOREST );
registerBiomeType(taiga, FOREST, FROZEN);
registerBiomeType(taigaHills, FOREST, FROZEN);
registerBiomeType(swampland, SWAMP );
registerBiomeType(river, WATER );
registerBiomeType(frozenOcean, WATER, FROZEN);
registerBiomeType(frozenRiver, WATER, FROZEN);
registerBiomeType(icePlains, FROZEN );
registerBiomeType(iceMountains, FROZEN );
registerBiomeType(beach, BEACH );
registerBiomeType(desertHills, DESERT );
registerBiomeType(jungle, JUNGLE );
registerBiomeType(jungleHills, JUNGLE );
registerBiomeType(forestHills, FOREST );
registerBiomeType(sky, END );
registerBiomeType(hell, NETHER );
registerBiomeType(mushroomIsland, MUSHROOM );
registerBiomeType(extremeHillsEdge, MOUNTAIN );
registerBiomeType(mushroomIslandShore, MUSHROOM, BEACH);
}
}
@@ -1,70 +0,0 @@
package net.minecraftforge.common;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.gen.ChunkProviderGenerate;
import net.minecraft.world.chunk.IChunkProvider;
import net.minecraft.world.gen.structure.MapGenStronghold;
import net.minecraft.world.gen.structure.MapGenVillage;
import net.minecraft.world.biome.WorldChunkManager;
import com.google.common.collect.Lists;
public class BiomeManager
{
public static void addVillageBiome(BiomeGenBase biome, boolean canSpawn)
{
if (!MapGenVillage.villageSpawnBiomes.contains(biome))
{
ArrayList<BiomeGenBase> biomes = new ArrayList<BiomeGenBase>(MapGenVillage.villageSpawnBiomes);
biomes.add(biome);
MapGenVillage.villageSpawnBiomes = biomes;
}
}
public static void removeVillageBiome(BiomeGenBase biome)
{
if (MapGenVillage.villageSpawnBiomes.contains(biome))
{
ArrayList<BiomeGenBase> biomes = new ArrayList<BiomeGenBase>(MapGenVillage.villageSpawnBiomes);
biomes.remove(biome);
MapGenVillage.villageSpawnBiomes = biomes;
}
}
public static void addStrongholdBiome(BiomeGenBase biome)
{
if (!MapGenStronghold.allowedBiomes.contains(biome))
{
MapGenStronghold.allowedBiomes.add(biome);
}
}
public static void removeStrongholdBiome(BiomeGenBase biome)
{
if (MapGenStronghold.allowedBiomes.contains(biome))
{
MapGenStronghold.allowedBiomes.remove(biome);
}
}
public static void addSpawnBiome(BiomeGenBase biome)
{
if (!WorldChunkManager.allowedBiomes.contains(biome))
{
WorldChunkManager.allowedBiomes.add(biome);
}
}
public static void removeSpawnBiome(BiomeGenBase biome)
{
if (WorldChunkManager.allowedBiomes.contains(biome))
{
WorldChunkManager.allowedBiomes.remove(biome);
}
}
}
@@ -1,927 +0,0 @@
/**
* This software is provided under the terms of the Minecraft Forge Public
* License v1.0.
*/
package net.minecraftforge.common;
import static net.minecraftforge.common.Property.Type.BOOLEAN;
import static net.minecraftforge.common.Property.Type.DOUBLE;
import static net.minecraftforge.common.Property.Type.INTEGER;
import static net.minecraftforge.common.Property.Type.STRING;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PushbackInputStream;
import java.io.Reader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import com.google.common.base.CharMatcher;
import com.google.common.collect.ImmutableSet;
import cpw.mods.fml.common.FMLLog;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.relauncher.FMLInjectionData;
/**
* This class offers advanced configurations capabilities, allowing to provide
* various categories for configuration variables.
*/
public class Configuration
{
private static boolean[] configMarkers = new boolean[Item.itemsList.length];
private static final int ITEM_SHIFT = 256;
private static final int MAX_BLOCKS = 4096;
public static final String CATEGORY_GENERAL = "general";
public static final String CATEGORY_BLOCK = "block";
public static final String CATEGORY_ITEM = "item";
public static final String ALLOWED_CHARS = "._-";
public static final String DEFAULT_ENCODING = "UTF-8";
public static final String CATEGORY_SPLITTER = ".";
public static final String NEW_LINE;
private static final Pattern CONFIG_START = Pattern.compile("START: \"([^\\\"]+)\"");
private static final Pattern CONFIG_END = Pattern.compile("END: \"([^\\\"]+)\"");
public static final CharMatcher allowedProperties = CharMatcher.JAVA_LETTER_OR_DIGIT.or(CharMatcher.anyOf(ALLOWED_CHARS));
private static Configuration PARENT = null;
File file;
private Map<String, ConfigCategory> categories = new TreeMap<String, ConfigCategory>();
private Map<String, Configuration> children = new TreeMap<String, Configuration>();
private boolean caseSensitiveCustomCategories;
public String defaultEncoding = DEFAULT_ENCODING;
private String fileName = null;
public boolean isChild = false;
private boolean changed = false;
static
{
Arrays.fill(configMarkers, false);
NEW_LINE = System.getProperty("line.separator");
}
public Configuration(){}
/**
* Create a configuration file for the file given in parameter.
*/
public Configuration(File file)
{
this.file = file;
String basePath = ((File)(FMLInjectionData.data()[6])).getAbsolutePath().replace(File.separatorChar, '/').replace("/.", "");
String path = file.getAbsolutePath().replace(File.separatorChar, '/').replace("/./", "/").replace(basePath, "");
if (PARENT != null)
{
PARENT.setChild(path, this);
isChild = true;
}
else
{
fileName = path;
load();
}
}
public Configuration(File file, boolean caseSensitiveCustomCategories)
{
this(file);
this.caseSensitiveCustomCategories = caseSensitiveCustomCategories;
}
/**
* Gets or create a block id property. If the block id property key is
* already in the configuration, then it will be used. Otherwise,
* defaultId will be used, except if already taken, in which case this
* will try to determine a free default id.
*/
public Property getBlock(String key, int defaultID) { return getBlock(CATEGORY_BLOCK, key, defaultID, null); }
public Property getBlock(String key, int defaultID, String comment) { return getBlock(CATEGORY_BLOCK, key, defaultID, comment); }
public Property getBlock(String category, String key, int defaultID) { return getBlockInternal(category, key, defaultID, null, 256, Block.blocksList.length); }
public Property getBlock(String category, String key, int defaultID, String comment) { return getBlockInternal(category, key, defaultID, comment, 256, Block.blocksList.length); }
/**
* Special version of getBlock to be used when you want to garentee the ID you get is below 256
* This should ONLY be used by mods who do low level terrain generation, or ones that add new
* biomes.
* EXA: ExtraBiomesXL
*
* Specifically, if your block is used BEFORE the Chunk is created, and placed in the terrain byte array directly.
* If you add a new biome and you set the top/filler block, they need to be <256, nothing else.
*
* If you're adding a new ore, DON'T call this function.
*
* Normal mods such as '50 new ores' do not need to be below 256 so should use the normal getBlock
*/
public Property getTerrainBlock(String category, String key, int defaultID, String comment)
{
return getBlockInternal(category, key, defaultID, comment, 0, 256);
}
private Property getBlockInternal(String category, String key, int defaultID, String comment, int lower, int upper)
{
Property prop = get(category, key, -1, comment);
if (prop.getInt() != -1)
{
configMarkers[prop.getInt()] = true;
return prop;
}
else
{
if (defaultID < lower)
{
FMLLog.warning(
"Mod attempted to get a block ID with a default in the Terrain Generation section, " +
"mod authors should make sure there defaults are above 256 unless explicitly needed " +
"for terrain generation. Most ores do not need to be below 256.");
FMLLog.warning("Config \"%s\" Category: \"%s\" Key: \"%s\" Default: %d", fileName, category, key, defaultID);
defaultID = upper - 1;
}
if (Block.blocksList[defaultID] == null && !configMarkers[defaultID])
{
prop.set(defaultID);
configMarkers[defaultID] = true;
return prop;
}
else
{
for (int j = upper - 1; j > 0; j--)
{
if (Block.blocksList[j] == null && !configMarkers[j])
{
prop.set(j);
configMarkers[j] = true;
return prop;
}
}
throw new RuntimeException("No more block ids available for " + key);
}
}
}
public Property getItem(String key, int defaultID) { return getItem(CATEGORY_ITEM, key, defaultID, null); }
public Property getItem(String key, int defaultID, String comment) { return getItem(CATEGORY_ITEM, key, defaultID, comment); }
public Property getItem(String category, String key, int defaultID) { return getItem(category, key, defaultID, null); }
public Property getItem(String category, String key, int defaultID, String comment)
{
Property prop = get(category, key, -1, comment);
int defaultShift = defaultID + ITEM_SHIFT;
if (prop.getInt() != -1)
{
configMarkers[prop.getInt() + ITEM_SHIFT] = true;
return prop;
}
else
{
if (defaultID < MAX_BLOCKS - ITEM_SHIFT)
{
FMLLog.warning(
"Mod attempted to get a item ID with a default value in the block ID section, " +
"mod authors should make sure there defaults are above %d unless explicitly needed " +
"so that all block ids are free to store blocks.", MAX_BLOCKS - ITEM_SHIFT);
FMLLog.warning("Config \"%s\" Category: \"%s\" Key: \"%s\" Default: %d", fileName, category, key, defaultID);
}
if (Item.itemsList[defaultShift] == null && !configMarkers[defaultShift] && defaultShift >= Block.blocksList.length)
{
prop.set(defaultID);
configMarkers[defaultShift] = true;
return prop;
}
else
{
for (int x = Item.itemsList.length - 1; x >= ITEM_SHIFT; x--)
{
if (Item.itemsList[x] == null && !configMarkers[x])
{
prop.set(x - ITEM_SHIFT);
configMarkers[x] = true;
return prop;
}
}
throw new RuntimeException("No more item ids available for " + key);
}
}
}
public Property get(String category, String key, int defaultValue)
{
return get(category, key, defaultValue, null);
}
public Property get(String category, String key, int defaultValue, String comment)
{
Property prop = get(category, key, Integer.toString(defaultValue), comment, INTEGER);
if (!prop.isIntValue())
{
prop.set(defaultValue);
}
return prop;
}
public Property get(String category, String key, boolean defaultValue)
{
return get(category, key, defaultValue, null);
}
public Property get(String category, String key, boolean defaultValue, String comment)
{
Property prop = get(category, key, Boolean.toString(defaultValue), comment, BOOLEAN);
if (!prop.isBooleanValue())
{
prop.set(defaultValue);
}
return prop;
}
public Property get(String category, String key, double defaultValue)
{
return get(category, key, defaultValue, null);
}
public Property get(String category, String key, double defaultValue, String comment)
{
Property prop = get(category, key, Double.toString(defaultValue), comment, DOUBLE);
if (!prop.isDoubleValue())
{
prop.set(defaultValue);
}
return prop;
}
public Property get(String category, String key, String defaultValue)
{
return get(category, key, defaultValue, null);
}
public Property get(String category, String key, String defaultValue, String comment)
{
return get(category, key, defaultValue, comment, STRING);
}
public Property get(String category, String key, String[] defaultValue)
{
return get(category, key, defaultValue, null);
}
public Property get(String category, String key, String[] defaultValue, String comment)
{
return get(category, key, defaultValue, comment, STRING);
}
public Property get(String category, String key, int[] defaultValue)
{
return get(category, key, defaultValue, null);
}
public Property get(String category, String key, int[] defaultValue, String comment)
{
String[] values = new String[defaultValue.length];
for (int i = 0; i < defaultValue.length; i++)
{
values[i] = Integer.toString(defaultValue[i]);
}
Property prop = get(category, key, values, comment, INTEGER);
if (!prop.isIntList())
{
prop.set(values);
}
return prop;
}
public Property get(String category, String key, double[] defaultValue)
{
return get(category, key, defaultValue, null);
}
public Property get(String category, String key, double[] defaultValue, String comment)
{
String[] values = new String[defaultValue.length];
for (int i = 0; i < defaultValue.length; i++)
{
values[i] = Double.toString(defaultValue[i]);
}
Property prop = get(category, key, values, comment, DOUBLE);
if (!prop.isDoubleList())
{
prop.set(values);
}
return prop;
}
public Property get(String category, String key, boolean[] defaultValue)
{
return get(category, key, defaultValue, null);
}
public Property get(String category, String key, boolean[] defaultValue, String comment)
{
String[] values = new String[defaultValue.length];
for (int i = 0; i < defaultValue.length; i++)
{
values[i] = Boolean.toString(defaultValue[i]);
}
Property prop = get(category, key, values, comment, BOOLEAN);
if (!prop.isBooleanList())
{
prop.set(values);
}
return prop;
}
public Property get(String category, String key, String defaultValue, String comment, Property.Type type)
{
if (!caseSensitiveCustomCategories)
{
category = category.toLowerCase(Locale.ENGLISH);
}
ConfigCategory cat = getCategory(category);
if (cat.containsKey(key))
{
Property prop = cat.get(key);
if (prop.getType() == null)
{
prop = new Property(prop.getName(), prop.getString(), type);
cat.put(key, prop);
}
prop.comment = comment;
return prop;
}
else if (defaultValue != null)
{
Property prop = new Property(key, defaultValue, type);
prop.set(defaultValue); //Set and mark as dirty to signify it should save
cat.put(key, prop);
prop.comment = comment;
return prop;
}
else
{
return null;
}
}
public Property get(String category, String key, String[] defaultValue, String comment, Property.Type type)
{
if (!caseSensitiveCustomCategories)
{
category = category.toLowerCase(Locale.ENGLISH);
}
ConfigCategory cat = getCategory(category);
if (cat.containsKey(key))
{
Property prop = cat.get(key);
if (prop.getType() == null)
{
prop = new Property(prop.getName(), prop.getString(), type);
cat.put(key, prop);
}
prop.comment = comment;
return prop;
}
else if (defaultValue != null)
{
Property prop = new Property(key, defaultValue, type);
prop.comment = comment;
cat.put(key, prop);
return prop;
}
else
{
return null;
}
}
public boolean hasCategory(String category)
{
return categories.get(category) != null;
}
public boolean hasKey(String category, String key)
{
ConfigCategory cat = categories.get(category);
return cat != null && cat.containsKey(key);
}
public void load()
{
if (PARENT != null && PARENT != this)
{
return;
}
BufferedReader buffer = null;
UnicodeInputStreamReader input = null;
try
{
if (file.getParentFile() != null)
{
file.getParentFile().mkdirs();
}
if (!file.exists() && !file.createNewFile())
{
return;
}
if (file.canRead())
{
input = new UnicodeInputStreamReader(new FileInputStream(file), defaultEncoding);
defaultEncoding = input.getEncoding();
buffer = new BufferedReader(input);
String line;
ConfigCategory currentCat = null;
Property.Type type = null;
ArrayList<String> tmpList = null;
int lineNum = 0;
String name = null;
while (true)
{
lineNum++;
line = buffer.readLine();
if (line == null)
{
break;
}
Matcher start = CONFIG_START.matcher(line);
Matcher end = CONFIG_END.matcher(line);
if (start.matches())
{
fileName = start.group(1);
categories = new TreeMap<String, ConfigCategory>();
continue;
}
else if (end.matches())
{
fileName = end.group(1);
Configuration child = new Configuration();
child.categories = categories;
this.children.put(fileName, child);
continue;
}
int nameStart = -1, nameEnd = -1;
boolean skip = false;
boolean quoted = false;
for (int i = 0; i < line.length() && !skip; ++i)
{
if (Character.isLetterOrDigit(line.charAt(i)) || ALLOWED_CHARS.indexOf(line.charAt(i)) != -1 || (quoted && line.charAt(i) != '"'))
{
if (nameStart == -1)
{
nameStart = i;
}
nameEnd = i;
}
else if (Character.isWhitespace(line.charAt(i)))
{
// ignore space charaters
}
else
{
switch (line.charAt(i))
{
case '#':
skip = true;
continue;
case '"':
if (quoted)
{
quoted = false;
}
if (!quoted && nameStart == -1)
{
quoted = true;
}
break;
case '{':
name = line.substring(nameStart, nameEnd + 1);
String qualifiedName = ConfigCategory.getQualifiedName(name, currentCat);
ConfigCategory cat = categories.get(qualifiedName);
if (cat == null)
{
currentCat = new ConfigCategory(name, currentCat);
categories.put(qualifiedName, currentCat);
}
else
{
currentCat = cat;
}
name = null;
break;
case '}':
if (currentCat == null)
{
throw new RuntimeException(String.format("Config file corrupt, attepted to close to many categories '%s:%d'", fileName, lineNum));
}
currentCat = currentCat.parent;
break;
case '=':
name = line.substring(nameStart, nameEnd + 1);
if (currentCat == null)
{
throw new RuntimeException(String.format("'%s' has no scope in '%s:%d'", name, fileName, lineNum));
}
Property prop = new Property(name, line.substring(i + 1), type, true);
i = line.length();
currentCat.put(name, prop);
break;
case ':':
type = Property.Type.tryParse(line.substring(nameStart, nameEnd + 1).charAt(0));
nameStart = nameEnd = -1;
break;
case '<':
if (tmpList != null)
{
throw new RuntimeException(String.format("Malformed list property \"%s:%d\"", fileName, lineNum));
}
name = line.substring(nameStart, nameEnd + 1);
if (currentCat == null)
{
throw new RuntimeException(String.format("'%s' has no scope in '%s:%d'", name, fileName, lineNum));
}
tmpList = new ArrayList<String>();
skip = true;
break;
case '>':
if (tmpList == null)
{
throw new RuntimeException(String.format("Malformed list property \"%s:%d\"", fileName, lineNum));
}
currentCat.put(name, new Property(name, tmpList.toArray(new String[tmpList.size()]), type));
name = null;
tmpList = null;
type = null;
break;
default:
throw new RuntimeException(String.format("Unknown character '%s' in '%s:%d'", line.charAt(i), fileName, lineNum));
}
}
}
if (quoted)
{
throw new RuntimeException(String.format("Unmatched quote in '%s:%d'", fileName, lineNum));
}
else if (tmpList != null && !skip)
{
tmpList.add(line.trim());
}
}
}
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
if (buffer != null)
{
try
{
buffer.close();
} catch (IOException e){}
}
if (input != null)
{
try
{
input.close();
} catch (IOException e){}
}
}
resetChangedState();
}
public void save()
{
if (PARENT != null && PARENT != this)
{
PARENT.save();
return;
}
try
{
if (file.getParentFile() != null)
{
file.getParentFile().mkdirs();
}
if (!file.exists() && !file.createNewFile())
{
return;
}
if (file.canWrite())
{
FileOutputStream fos = new FileOutputStream(file);
BufferedWriter buffer = new BufferedWriter(new OutputStreamWriter(fos, defaultEncoding));
buffer.write("# Configuration file" + NEW_LINE + NEW_LINE);
if (children.isEmpty())
{
save(buffer);
}
else
{
for (Map.Entry<String, Configuration> entry : children.entrySet())
{
buffer.write("START: \"" + entry.getKey() + "\"" + NEW_LINE);
entry.getValue().save(buffer);
buffer.write("END: \"" + entry.getKey() + "\"" + NEW_LINE + NEW_LINE);
}
}
buffer.close();
fos.close();
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
private void save(BufferedWriter out) throws IOException
{
for (ConfigCategory cat : categories.values())
{
if (!cat.isChild())
{
cat.write(out, 0);
out.newLine();
}
}
}
public ConfigCategory getCategory(String category)
{
ConfigCategory ret = categories.get(category);
if (ret == null)
{
if (category.contains(CATEGORY_SPLITTER))
{
String[] hierarchy = category.split("\\"+CATEGORY_SPLITTER);
ConfigCategory parent = categories.get(hierarchy[0]);
if (parent == null)
{
parent = new ConfigCategory(hierarchy[0]);
categories.put(parent.getQualifiedName(), parent);
changed = true;
}
for (int i = 1; i < hierarchy.length; i++)
{
String name = ConfigCategory.getQualifiedName(hierarchy[i], parent);
ConfigCategory child = categories.get(name);
if (child == null)
{
child = new ConfigCategory(hierarchy[i], parent);
categories.put(name, child);
changed = true;
}
ret = child;
parent = child;
}
}
else
{
ret = new ConfigCategory(category);
categories.put(category, ret);
changed = true;
}
}
return ret;
}
public void removeCategory(ConfigCategory category)
{
for (ConfigCategory child : category.getChildren())
{
removeCategory(child);
}
if (categories.containsKey(category.getQualifiedName()))
{
categories.remove(category.getQualifiedName());
if (category.parent != null)
{
category.parent.removeChild(category);
}
changed = true;
}
}
public void addCustomCategoryComment(String category, String comment)
{
if (!caseSensitiveCustomCategories)
category = category.toLowerCase(Locale.ENGLISH);
getCategory(category).setComment(comment);
}
private void setChild(String name, Configuration child)
{
if (!children.containsKey(name))
{
children.put(name, child);
changed = true;
}
else
{
Configuration old = children.get(name);
child.categories = old.categories;
child.fileName = old.fileName;
old.changed = true;
}
}
public static void enableGlobalConfig()
{
PARENT = new Configuration(new File(Loader.instance().getConfigDir(), "global.cfg"));
PARENT.load();
}
public static class UnicodeInputStreamReader extends Reader
{
private final InputStreamReader input;
private final String defaultEnc;
public UnicodeInputStreamReader(InputStream source, String encoding) throws IOException
{
defaultEnc = encoding;
String enc = encoding;
byte[] data = new byte[4];
PushbackInputStream pbStream = new PushbackInputStream(source, data.length);
int read = pbStream.read(data, 0, data.length);
int size = 0;
int bom16 = (data[0] & 0xFF) << 8 | (data[1] & 0xFF);
int bom24 = bom16 << 8 | (data[2] & 0xFF);
int bom32 = bom24 << 8 | (data[3] & 0xFF);
if (bom24 == 0xEFBBBF)
{
enc = "UTF-8";
size = 3;
}
else if (bom16 == 0xFEFF)
{
enc = "UTF-16BE";
size = 2;
}
else if (bom16 == 0xFFFE)
{
enc = "UTF-16LE";
size = 2;
}
else if (bom32 == 0x0000FEFF)
{
enc = "UTF-32BE";
size = 4;
}
else if (bom32 == 0xFFFE0000) //This will never happen as it'll be caught by UTF-16LE,
{ //but if anyone ever runs across a 32LE file, i'd like to disect it.
enc = "UTF-32LE";
size = 4;
}
if (size < read)
{
pbStream.unread(data, size, read - size);
}
this.input = new InputStreamReader(pbStream, enc);
}
public String getEncoding()
{
return input.getEncoding();
}
@Override
public int read(char[] cbuf, int off, int len) throws IOException
{
return input.read(cbuf, off, len);
}
@Override
public void close() throws IOException
{
input.close();
}
}
public boolean hasChanged()
{
if (changed) return true;
for (ConfigCategory cat : categories.values())
{
if (cat.hasChanged()) return true;
}
for (Configuration child : children.values())
{
if (child.hasChanged()) return true;
}
return false;
}
private void resetChangedState()
{
changed = false;
for (ConfigCategory cat : categories.values())
{
cat.resetChangedState();
}
for (Configuration child : children.values())
{
child.resetChangedState();
}
}
public Set<String> getCategoryNames()
{
return ImmutableSet.copyOf(categories.keySet());
}
}
@@ -1,25 +0,0 @@
package net.minecraftforge.common;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.ChatMessageComponent;
import net.minecraft.util.ChunkCoordinates;
import net.minecraft.world.World;
//Preliminary, simple Fake Player class
public class FakePlayer extends EntityPlayer
{
public FakePlayer(World world, String name)
{
super(world, name);
}
public void sendChatToPlayer(String s){}
public boolean canCommandSenderUseCommand(int i, String s){ return false; }
public ChunkCoordinates getPlayerCoordinates()
{
return new ChunkCoordinates(0,0,0);
}
@Override
public void func_110122_a(ChatMessageComponent chatmessagecomponent){}
}
@@ -1,18 +0,0 @@
package net.minecraftforge.common;
import net.minecraft.world.World;
//To be expanded for generic Mod fake players?
public class FakePlayerFactory
{
private static FakePlayer MINECRAFT_PLAYER = null;
public static FakePlayer getMinecraft(World world)
{
if (MINECRAFT_PLAYER == null)
{
MINECRAFT_PLAYER = new FakePlayer(world, "[Minecraft]");
}
return MINECRAFT_PLAYER;
}
}
@@ -1,184 +0,0 @@
package net.minecraftforge.common;
import java.io.File;
import java.util.Arrays;
import java.util.Map;
import java.util.logging.Level;
import net.minecraft.nbt.NBTBase;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.server.management.PlayerInstance;
import net.minecraft.world.storage.SaveHandler;
import net.minecraft.world.storage.WorldInfo;
import net.minecraftforge.common.network.ForgeConnectionHandler;
import net.minecraftforge.common.network.ForgeNetworkHandler;
import net.minecraftforge.common.network.ForgePacketHandler;
import net.minecraftforge.common.network.ForgeTinyPacketHandler;
import com.google.common.eventbus.EventBus;
import com.google.common.eventbus.Subscribe;
import cpw.mods.fml.common.DummyModContainer;
import cpw.mods.fml.common.FMLLog;
import cpw.mods.fml.common.LoadController;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.ModMetadata;
import cpw.mods.fml.common.WorldAccessContainer;
import cpw.mods.fml.common.event.FMLConstructionEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.FMLNetworkHandler;
import cpw.mods.fml.common.network.NetworkMod;
import static net.minecraftforge.common.ForgeVersion.*;
@NetworkMod(
channels = "FORGE",
connectionHandler = ForgeConnectionHandler.class,
packetHandler = ForgePacketHandler.class,
tinyPacketHandler = ForgeTinyPacketHandler.class
)
public class ForgeDummyContainer extends DummyModContainer implements WorldAccessContainer
{
public static int clumpingThreshold = 64;
public static boolean legacyFurnaceSides = false;
public static boolean removeErroringEntities = false;
public static boolean removeErroringTileEntities = false;
public static boolean disableStitchedFileSaving = false;
public ForgeDummyContainer()
{
super(new ModMetadata());
ModMetadata meta = getMetadata();
meta.modId = "Forge";
meta.name = "Minecraft Forge";
meta.version = String.format("%d.%d.%d.%d", majorVersion, minorVersion, revisionVersion, buildVersion);
meta.credits = "Made possible with help from many people";
meta.authorList = Arrays.asList("LexManos", "Eloraam", "Spacetoad");
meta.description = "Minecraft Forge is a common open source API allowing a broad range of mods " +
"to work cooperatively together. It allows many mods to be created without " +
"them editing the main Minecraft code.";
meta.url = "http://MinecraftForge.net";
meta.updateUrl = "http://MinecraftForge.net/forum/index.php/topic,5.0.html";
meta.screenshots = new String[0];
meta.logoFile = "/forge_logo.png";
Configuration config = null;
File cfgFile = new File(Loader.instance().getConfigDir(), "forge.cfg");
try
{
config = new Configuration(cfgFile);
}
catch (Exception e)
{
System.out.println("Error loading forge.cfg, deleting file and resetting: ");
e.printStackTrace();
if (cfgFile.exists())
cfgFile.delete();
config = new Configuration(cfgFile);
}
if (!config.isChild)
{
config.load();
Property enableGlobalCfg = config.get(Configuration.CATEGORY_GENERAL, "enableGlobalConfig", false);
if (enableGlobalCfg.getBoolean(false))
{
Configuration.enableGlobalConfig();
}
}
Property prop;
prop = config.get(Configuration.CATEGORY_GENERAL, "clumpingThreshold", 64);
prop.comment = "Controls the number threshold at which Packet51 is preferred over Packet52, default and minimum 64, maximum 1024";
clumpingThreshold = prop.getInt(64);
if (clumpingThreshold > 1024 || clumpingThreshold < 64)
{
clumpingThreshold = 64;
prop.set(64);
}
prop = config.get(Configuration.CATEGORY_GENERAL, "legacyFurnaceOutput", false);
prop.comment = "Controls the sides of vanilla furnaces for Forge's ISidedInventroy, Vanilla defines the output as the bottom, but mods/Forge define it as the sides. Settings this to true will restore the old side relations.";
legacyFurnaceSides = prop.getBoolean(false);
prop = config.get(Configuration.CATEGORY_GENERAL, "removeErroringEntities", false);
prop.comment = "Set this to just remove any TileEntity that throws a error in there update method instead of closing the server and reporting a crash log. BE WARNED THIS COULD SCREW UP EVERYTHING USE SPARINGLY WE ARE NOT RESPONSIBLE FOR DAMAGES.";
removeErroringEntities = prop.getBoolean(false);
if (removeErroringEntities)
{
FMLLog.warning("Enableing removal of erroring Entities USE AT YOUR OWN RISK");
}
prop = config.get(Configuration.CATEGORY_GENERAL, "removeErroringTileEntities", false);
prop.comment = "Set this to just remove any TileEntity that throws a error in there update method instead of closing the server and reporting a crash log. BE WARNED THIS COULD SCREW UP EVERYTHING USE SPARINGLY WE ARE NOT RESPONSIBLE FOR DAMAGES.";
removeErroringTileEntities = prop.getBoolean(false);
if (removeErroringTileEntities)
{
FMLLog.warning("Enableing removal of erroring Tile Entities USE AT YOUR OWN RISK");
}
prop = config.get(Configuration.CATEGORY_GENERAL, "disableStitchedFileSaving", true);
prop.comment = "Set this to just disable the texture stitcher from writing the 'debug.stitched_{name}.png file to disc. Just a small performance tweak. Default: true";
disableStitchedFileSaving = prop.getBoolean(true);
if (config.hasChanged())
{
config.save();
}
}
@Override
public boolean registerBus(EventBus bus, LoadController controller)
{
bus.register(this);
return true;
}
@Subscribe
public void modConstruction(FMLConstructionEvent evt)
{
FMLLog.info("Registering Forge Packet Handler");
try
{
FMLNetworkHandler.instance().registerNetworkMod(new ForgeNetworkHandler(this));
FMLLog.info("Succeeded registering Forge Packet Handler");
}
catch (Exception e)
{
FMLLog.log(Level.SEVERE, e, "Failed to register packet handler for Forge");
}
}
@Subscribe
public void preInit(FMLPreInitializationEvent evt)
{
ForgeChunkManager.captureConfig(evt.getModConfigurationDirectory());
}
@Subscribe
public void postInit(FMLPostInitializationEvent evt)
{
ForgeChunkManager.loadConfiguration();
}
@Override
public NBTTagCompound getDataForWriting(SaveHandler handler, WorldInfo info)
{
NBTTagCompound forgeData = new NBTTagCompound();
NBTTagCompound dimData = DimensionManager.saveDimensionDataMap();
forgeData.setCompoundTag("DimensionData", dimData);
return forgeData;
}
@Override
public void readData(SaveHandler handler, WorldInfo info, Map<String, NBTBase> propertyMap, NBTTagCompound tag)
{
if (tag.hasKey("DimensionData"))
{
DimensionManager.loadDimensionDataMap(tag.hasKey("DimensionData") ? tag.getCompoundTag("DimensionData") : null);
}
}
}
@@ -1,401 +0,0 @@
package net.minecraftforge.common;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemAxe;
import net.minecraft.item.ItemPickaxe;
import net.minecraft.item.ItemSpade;
import net.minecraft.item.ItemStack;
import net.minecraft.network.NetServerHandler;
import net.minecraft.util.ChatMessageComponent;
import net.minecraft.util.DamageSource;
import net.minecraft.util.EnumMovingObjectType;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.WeightedRandom;
import net.minecraft.util.WeightedRandomItem;
import net.minecraft.world.World;
import net.minecraftforge.event.ForgeEventFactory;
import net.minecraftforge.event.ServerChatEvent;
import net.minecraftforge.event.entity.item.ItemTossEvent;
import net.minecraftforge.event.entity.living.LivingAttackEvent;
import net.minecraftforge.event.entity.living.LivingDeathEvent;
import net.minecraftforge.event.entity.living.LivingDropsEvent;
import net.minecraftforge.event.entity.living.LivingEvent.LivingJumpEvent;
import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent;
import net.minecraftforge.event.entity.living.LivingFallEvent;
import net.minecraftforge.event.entity.living.LivingHurtEvent;
import net.minecraftforge.event.entity.living.LivingSetAttackTargetEvent;
public class ForgeHooks
{
static class GrassEntry extends WeightedRandomItem
{
public final Block block;
public final int metadata;
public GrassEntry(Block block, int meta, int weight)
{
super(weight);
this.block = block;
this.metadata = meta;
}
}
static class SeedEntry extends WeightedRandomItem
{
public final ItemStack seed;
public SeedEntry(ItemStack seed, int weight)
{
super(weight);
this.seed = seed;
}
}
static final List<GrassEntry> grassList = new ArrayList<GrassEntry>();
static final List<SeedEntry> seedList = new ArrayList<SeedEntry>();
public static void plantGrass(World world, int x, int y, int z)
{
GrassEntry grass = (GrassEntry)WeightedRandom.getRandomItem(world.rand, grassList);
if (grass == null || grass.block == null || !grass.block.canBlockStay(world, x, y, z))
{
return;
}
world.setBlock(x, y, z, grass.block.blockID, grass.metadata, 3);
}
public static ItemStack getGrassSeed(World world)
{
SeedEntry entry = (SeedEntry)WeightedRandom.getRandomItem(world.rand, seedList);
if (entry == null || entry.seed == null)
{
return null;
}
return entry.seed.copy();
}
private static boolean toolInit = false;
static HashMap<Item, List> toolClasses = new HashMap<Item, List>();
static HashMap<List, Integer> toolHarvestLevels = new HashMap<List, Integer>();
static HashSet<List> toolEffectiveness = new HashSet<List>();
public static boolean canHarvestBlock(Block block, EntityPlayer player, int metadata)
{
if (block.blockMaterial.isToolNotRequired())
{
return true;
}
ItemStack stack = player.inventory.getCurrentItem();
if (stack == null)
{
return player.canHarvestBlock(block);
}
List info = toolClasses.get(stack.getItem());
if (info == null)
{
return player.canHarvestBlock(block);
}
Object[] tmp = info.toArray();
String toolClass = (String)tmp[0];
int harvestLevel = (Integer)tmp[1];
Integer blockHarvestLevel = toolHarvestLevels.get(Arrays.asList(block, metadata, toolClass));
if (blockHarvestLevel == null)
{
return player.canHarvestBlock(block);
}
if (blockHarvestLevel > harvestLevel)
{
return false;
}
return true;
}
public static boolean canToolHarvestBlock(Block block, int metadata, ItemStack stack)
{
if (stack == null) return false;
List info = toolClasses.get(stack.getItem());
if (info == null) return false;
Object[] tmp = info.toArray();
String toolClass = (String)tmp[0];
int harvestLevel = (Integer)tmp[1];
Integer blockHarvestLevel = toolHarvestLevels.get(Arrays.asList(block, metadata, toolClass));
return !(blockHarvestLevel == null || blockHarvestLevel > harvestLevel);
}
public static float blockStrength(Block block, EntityPlayer player, World world, int x, int y, int z)
{
int metadata = world.getBlockMetadata(x, y, z);
float hardness = block.getBlockHardness(world, x, y, z);
if (hardness < 0.0F)
{
return 0.0F;
}
if (!canHarvestBlock(block, player, metadata))
{
float speed = ForgeEventFactory.getBreakSpeed(player, block, metadata, 1.0f);
return (speed < 0 ? 0 : speed) / hardness / 100F;
}
else
{
return player.getCurrentPlayerStrVsBlock(block, false, metadata) / hardness / 30F;
}
}
public static boolean isToolEffective(ItemStack stack, Block block, int metadata)
{
List toolClass = toolClasses.get(stack.getItem());
return toolClass != null && toolEffectiveness.contains(Arrays.asList(block, metadata, toolClass.get(0)));
}
static void initTools()
{
if (toolInit)
{
return;
}
toolInit = true;
MinecraftForge.setToolClass(Item.pickaxeWood, "pickaxe", 0);
MinecraftForge.setToolClass(Item.pickaxeStone, "pickaxe", 1);
MinecraftForge.setToolClass(Item.pickaxeIron, "pickaxe", 2);
MinecraftForge.setToolClass(Item.pickaxeGold, "pickaxe", 0);
MinecraftForge.setToolClass(Item.pickaxeDiamond, "pickaxe", 3);
MinecraftForge.setToolClass(Item.axeWood, "axe", 0);
MinecraftForge.setToolClass(Item.axeStone, "axe", 1);
MinecraftForge.setToolClass(Item.axeIron, "axe", 2);
MinecraftForge.setToolClass(Item.axeGold, "axe", 0);
MinecraftForge.setToolClass(Item.axeDiamond, "axe", 3);
MinecraftForge.setToolClass(Item.shovelWood, "shovel", 0);
MinecraftForge.setToolClass(Item.shovelStone, "shovel", 1);
MinecraftForge.setToolClass(Item.shovelIron, "shovel", 2);
MinecraftForge.setToolClass(Item.shovelGold, "shovel", 0);
MinecraftForge.setToolClass(Item.shovelDiamond, "shovel", 3);
for (Block block : ItemPickaxe.blocksEffectiveAgainst)
{
MinecraftForge.setBlockHarvestLevel(block, "pickaxe", 0);
}
for (Block block : ItemSpade.blocksEffectiveAgainst)
{
MinecraftForge.setBlockHarvestLevel(block, "shovel", 0);
}
for (Block block : ItemAxe.blocksEffectiveAgainst)
{
MinecraftForge.setBlockHarvestLevel(block, "axe", 0);
}
MinecraftForge.setBlockHarvestLevel(Block.obsidian, "pickaxe", 3);
MinecraftForge.setBlockHarvestLevel(Block.oreEmerald, "pickaxe", 2);
MinecraftForge.setBlockHarvestLevel(Block.oreDiamond, "pickaxe", 2);
MinecraftForge.setBlockHarvestLevel(Block.blockDiamond, "pickaxe", 2);
MinecraftForge.setBlockHarvestLevel(Block.oreGold, "pickaxe", 2);
MinecraftForge.setBlockHarvestLevel(Block.blockGold, "pickaxe", 2);
MinecraftForge.setBlockHarvestLevel(Block.oreIron, "pickaxe", 1);
MinecraftForge.setBlockHarvestLevel(Block.blockIron, "pickaxe", 1);
MinecraftForge.setBlockHarvestLevel(Block.oreLapis, "pickaxe", 1);
MinecraftForge.setBlockHarvestLevel(Block.blockLapis, "pickaxe", 1);
MinecraftForge.setBlockHarvestLevel(Block.oreRedstone, "pickaxe", 2);
MinecraftForge.setBlockHarvestLevel(Block.oreRedstoneGlowing, "pickaxe", 2);
MinecraftForge.removeBlockEffectiveness(Block.oreRedstone, "pickaxe");
MinecraftForge.removeBlockEffectiveness(Block.obsidian, "pickaxe");
MinecraftForge.removeBlockEffectiveness(Block.oreRedstoneGlowing, "pickaxe");
}
public static int getTotalArmorValue(EntityPlayer player)
{
int ret = 0;
for (int x = 0; x < player.inventory.armorInventory.length; x++)
{
ItemStack stack = player.inventory.armorInventory[x];
if (stack != null && stack.getItem() instanceof ISpecialArmor)
{
ret += ((ISpecialArmor)stack.getItem()).getArmorDisplay(player, stack, x);
}
else if (stack != null && stack.getItem() instanceof ItemArmor)
{
ret += ((ItemArmor)stack.getItem()).damageReduceAmount;
}
}
return ret;
}
static
{
grassList.add(new GrassEntry(Block.plantYellow, 0, 20));
grassList.add(new GrassEntry(Block.plantRed, 0, 10));
seedList.add(new SeedEntry(new ItemStack(Item.seeds), 10));
initTools();
}
/**
* Called when a player uses 'pick block', calls new Entity and Block hooks.
*/
public static boolean onPickBlock(MovingObjectPosition target, EntityPlayer player, World world)
{
ItemStack result = null;
boolean isCreative = player.capabilities.isCreativeMode;
if (target.typeOfHit == EnumMovingObjectType.TILE)
{
int x = target.blockX;
int y = target.blockY;
int z = target.blockZ;
Block var8 = Block.blocksList[world.getBlockId(x, y, z)];
if (var8 == null)
{
return false;
}
result = var8.getPickBlock(target, world, x, y, z);
}
else
{
if (target.typeOfHit != EnumMovingObjectType.ENTITY || target.entityHit == null || !isCreative)
{
return false;
}
result = target.entityHit.getPickedResult(target);
}
if (result == null)
{
return false;
}
for (int x = 0; x < 9; x++)
{
ItemStack stack = player.inventory.getStackInSlot(x);
if (stack != null && stack.isItemEqual(result) && ItemStack.areItemStackTagsEqual(stack, result))
{
player.inventory.currentItem = x;
return true;
}
}
if (!isCreative)
{
return false;
}
int slot = player.inventory.getFirstEmptyStack();
if (slot < 0 || slot >= 9)
{
slot = player.inventory.currentItem;
}
player.inventory.setInventorySlotContents(slot, result);
player.inventory.currentItem = slot;
return true;
}
//Optifine Helper Functions u.u, these are here specifically for Optifine
//Note: When using Optfine, these methods are invoked using reflection, which
//incurs a major performance penalty.
public static void onLivingSetAttackTarget(EntityLivingBase entity, EntityLivingBase target)
{
MinecraftForge.EVENT_BUS.post(new LivingSetAttackTargetEvent(entity, target));
}
public static boolean onLivingUpdate(EntityLivingBase entity)
{
return MinecraftForge.EVENT_BUS.post(new LivingUpdateEvent(entity));
}
public static boolean onLivingAttack(EntityLivingBase entity, DamageSource src, float amount)
{
return MinecraftForge.EVENT_BUS.post(new LivingAttackEvent(entity, src, amount));
}
public static float onLivingHurt(EntityLivingBase entity, DamageSource src, float amount)
{
LivingHurtEvent event = new LivingHurtEvent(entity, src, amount);
return (MinecraftForge.EVENT_BUS.post(event) ? 0 : event.ammount);
}
public static boolean onLivingDeath(EntityLivingBase entity, DamageSource src)
{
return MinecraftForge.EVENT_BUS.post(new LivingDeathEvent(entity, src));
}
public static boolean onLivingDrops(EntityLivingBase entity, DamageSource source, ArrayList<EntityItem> drops, int lootingLevel, boolean recentlyHit, int specialDropValue)
{
return MinecraftForge.EVENT_BUS.post(new LivingDropsEvent(entity, source, drops, lootingLevel, recentlyHit, specialDropValue));
}
public static float onLivingFall(EntityLivingBase entity, float distance)
{
LivingFallEvent event = new LivingFallEvent(entity, distance);
return (MinecraftForge.EVENT_BUS.post(event) ? 0.0f : event.distance);
}
public static boolean isLivingOnLadder(Block block, World world, int x, int y, int z, EntityLivingBase entity)
{
return block != null && block.isLadder(world, x, y, z, entity);
}
public static void onLivingJump(EntityLivingBase entity)
{
MinecraftForge.EVENT_BUS.post(new LivingJumpEvent(entity));
}
public static EntityItem onPlayerTossEvent(EntityPlayer player, ItemStack item)
{
player.captureDrops = true;
EntityItem ret = player.dropPlayerItemWithRandomChoice(item, false);
player.capturedDrops.clear();
player.captureDrops = false;
ItemTossEvent event = new ItemTossEvent(ret, player);
if (MinecraftForge.EVENT_BUS.post(event))
{
return null;
}
player.joinEntityItemWithWorld(event.entityItem);
return event.entityItem;
}
public static float getEnchantPower(World world, int x, int y, int z)
{
if (world.isAirBlock(x, y, z))
{
return 0;
}
Block block = Block.blocksList[world.getBlockId(x, y, z)];
return (block == null ? 0 : block.getEnchantPowerBonus(world, x, y, z));
}
public static ChatMessageComponent onServerChatEvent(NetServerHandler net, String raw, ChatMessageComponent comp)
{
ServerChatEvent event = new ServerChatEvent(net.playerEntity, raw, comp);
if (MinecraftForge.EVENT_BUS.post(event))
{
return null;
}
return event.component;
}
}
@@ -1,44 +0,0 @@
/**
* This software is provided under the terms of the Minecraft Forge Public
* License v1.0.
*/
package net.minecraftforge.common;
public class ForgeVersion
{
//This number is incremented every time we remove deprecated code/major API changes, never reset
public static final int majorVersion = 8;
//This number is incremented every minecraft release, never reset
public static final int minorVersion = 9;
//This number is incremented every time a interface changes or new major feature is added, and reset every Minecraft version
public static final int revisionVersion = 0;
//This number is incremented every time Jenkins builds Forge, and never reset. Should always be 0 in the repo code.
public static final int buildVersion = 0;
public static int getMajorVersion()
{
return majorVersion;
}
public static int getMinorVersion()
{
return minorVersion;
}
public static int getRevisionVersion()
{
return revisionVersion;
}
public static int getBuildVersion()
{
return buildVersion;
}
public static String getVersion()
{
return String.format("%d.%d.%d.%d", majorVersion, minorVersion, revisionVersion, buildVersion);
}
}
@@ -1,10 +0,0 @@
package net.minecraftforge.common;
import net.minecraft.world.World;
public interface IPlantable
{
public EnumPlantType getPlantType(World world, int x, int y, int z);
public int getPlantID(World world, int x, int y, int z);
public int getPlantMetadata(World world, int x, int y, int z);
}
@@ -1,31 +0,0 @@
/**
* This software is provided under the terms of the Minecraft Forge Public
* License v1.0.
*/
package net.minecraftforge.common;
import net.minecraft.inventory.IInventory;
/** Inventory ranges mapped by side. This class is implemented by TileEntities
* that provide different inventory slot ranges to different sides.
*/
@Deprecated //A equivalent Interface is now in Minecraft Vanilla will be removed next major MC version
public interface ISidedInventory extends IInventory
{
/**
* Get the start of the side inventory.
* @param side The global side to get the start of range.
*/
@Deprecated
int getStartInventorySide(ForgeDirection side);
/**
* Get the size of the side inventory.
* @param side The global side.
*/
@Deprecated
int getSizeInventorySide(ForgeDirection side);
}
@@ -1,220 +0,0 @@
package net.minecraftforge.common;
import java.lang.reflect.Constructor;
import java.util.*;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.FMLLog;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.ModContainer;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.crash.CrashReport;
import net.minecraft.entity.monster.EntityEnderman;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.ForgeHooks.GrassEntry;
import net.minecraftforge.common.ForgeHooks.SeedEntry;
import net.minecraftforge.event.EventBus;
import net.minecraftforge.event.ForgeSubscribe;
import net.minecraftforge.event.entity.EntityEvent;
import net.minecraftforge.oredict.OreDictionary;
public class MinecraftForge
{
/**
* The core Forge EventBusses, all events for Forge will be fired on these,
* you should use this to register all your listeners.
* This replaces every register*Handler() function in the old version of Forge.
* TERRAIN_GEN_BUS for terrain gen events
* ORE_GEN_BUS for ore gen events
* EVENT_BUS for everything else
*/
public static final EventBus EVENT_BUS = new EventBus();
public static final EventBus TERRAIN_GEN_BUS = new EventBus();
public static final EventBus ORE_GEN_BUS = new EventBus();
private static final ForgeInternalHandler INTERNAL_HANDLER = new ForgeInternalHandler();
/** Register a new plant to be planted when bonemeal is used on grass.
* @param block The block to place.
* @param metadata The metadata to set for the block when being placed.
* @param weight The weight of the plant, where red flowers are
* 10 and yellow flowers are 20.
*/
public static void addGrassPlant(Block block, int metadata, int weight)
{
ForgeHooks.grassList.add(new GrassEntry(block, metadata, weight));
}
/**
* Register a new seed to be dropped when breaking tall grass.
*
* @param seed The item to drop as a seed.
* @param weight The relative probability of the seeds,
* where wheat seeds are 10.
*/
public static void addGrassSeed(ItemStack seed, int weight)
{
ForgeHooks.seedList.add(new SeedEntry(seed, weight));
}
/**
*
* Register a tool as a tool class with a given harvest level.
*
* @param tool The custom tool to register.
* @param toolClass The tool class to register as. The predefined tool
* clases are "pickaxe", "shovel", "axe". You can add
* others for custom tools.
* @param harvestLevel The harvest level of the tool.
*/
public static void setToolClass(Item tool, String toolClass, int harvestLevel)
{
ForgeHooks.toolClasses.put(tool, Arrays.asList(toolClass, harvestLevel));
}
/**
* Register a block to be harvested by a tool class. This is the metadata
* sensitive version, use it if your blocks are using metadata variants.
* By default, this sets the block class as effective against that type.
*
* @param block The block to register.
* @param metadata The metadata for the block subtype.
* @param toolClass The tool class to register as able to remove this block.
* You may register the same block multiple times with different tool
* classes, if multiple tool types can be used to harvest this block.
* @param harvestLevel The minimum tool harvest level required to successfully
* harvest the block.
* @see MinecraftForge#setToolClass for details on tool classes.
*/
public static void setBlockHarvestLevel(Block block, int metadata, String toolClass, int harvestLevel)
{
List key = Arrays.asList(block, metadata, toolClass);
ForgeHooks.toolHarvestLevels.put(key, harvestLevel);
ForgeHooks.toolEffectiveness.add(key);
}
/**
* Remove a block effectiveness mapping. Since setBlockHarvestLevel
* makes the tool class effective against the block by default, this can be
* used to remove that mapping. This will force a block to be harvested at
* the same speed regardless of tool quality, while still requiring a given
* harvesting level.
*
* @param block The block to remove effectiveness from.
* @param metadata The metadata for the block subtype.
* @param toolClass The tool class to remove the effectiveness mapping from.
* @see MinecraftForge#setToolClass for details on tool classes.
*/
public static void removeBlockEffectiveness(Block block, int metadata, String toolClass)
{
List key = Arrays.asList(block, metadata, toolClass);
ForgeHooks.toolEffectiveness.remove(key);
}
/**
* Register a block to be harvested by a tool class.
* By default, this sets the block class as effective against that type.
*
* @param block The block to register.
* @param toolClass The tool class to register as able to remove this block.
* You may register the same block multiple times with different tool
* classes, if multiple tool types can be used to harvest this block.
* @param harvestLevel The minimum tool harvest level required to successfully
* harvest the block.
* @see MinecraftForge#setToolClass for details on tool classes.
*/
public static void setBlockHarvestLevel(Block block, String toolClass, int harvestLevel)
{
for (int metadata = 0; metadata < 16; metadata++)
{
List key = Arrays.asList(block, metadata, toolClass);
ForgeHooks.toolHarvestLevels.put(key, harvestLevel);
ForgeHooks.toolEffectiveness.add(key);
}
}
/**
* Returns the block harvest level for a particular tool class.
*
* @param block The block to check.
* @param metadata The metadata for the block subtype.
* @param toolClass The tool class to check as able to remove this block.
* @see MinecraftForge#setToolClass for details on tool classes.
* @return The harvest level or -1 if no mapping exists.
*/
public static int getBlockHarvestLevel(Block block, int metadata, String toolClass)
{
ForgeHooks.initTools();
List key = Arrays.asList(block, metadata, toolClass);
Integer harvestLevel = ForgeHooks.toolHarvestLevels.get(key);
return (harvestLevel == null ? -1 : harvestLevel);
}
/**
* Remove a block effectiveness mapping. Since setBlockHarvestLevel
* makes the tool class effective against the block by default, this can be
* used to remove that mapping. This will force a block to be harvested at
* the same speed regardless of tool quality, while still requiring a given
* harvesting level.
*
* @param block The block to remove effectiveness from.
* @param toolClass The tool class to remove the effectiveness mapping from.
* @see MinecraftForge#setToolClass for details on tool classes.
*/
public static void removeBlockEffectiveness(Block block, String toolClass)
{
for (int metadata = 0; metadata < 16; metadata++)
{
List key = Arrays.asList(block, metadata, toolClass);
ForgeHooks.toolEffectiveness.remove(key);
}
}
/**
* Method invoked by FML before any other mods are loaded.
*/
public static void initialize()
{
System.out.printf("MinecraftForge v%s Initialized\n", ForgeVersion.getVersion());
FMLLog.info("MinecraftForge v%s Initialized", ForgeVersion.getVersion());
Block filler = new Block(0, Material.air)
{
@SideOnly(Side.CLIENT) public void func_94332_a(IconRegister register){}
};
Block.blocksList[0] = null;
Block.opaqueCubeLookup[0] = false;
Block.lightOpacity[0] = 0;
filler.setUnlocalizedName("ForgeFiller");
for (int x = 256; x < 4096; x++)
{
if (Item.itemsList[x] != null)
{
Block.blocksList[x] = filler;
}
}
boolean[] temp = new boolean[4096];
System.arraycopy(EntityEnderman.carriableBlocks, 0, temp, 0, EntityEnderman.carriableBlocks.length);
EntityEnderman.carriableBlocks = temp;
EVENT_BUS.register(INTERNAL_HANDLER);
OreDictionary.getOreName(0);
//Force these classes to be defined, Should prevent derp error hiding.
new CrashReport("ThisIsFake", new Exception("Not real"));
}
public static String getBrandingVersion()
{
return "Minecraft Forge "+ ForgeVersion.getVersion();
}
}
@@ -1,409 +0,0 @@
/**
* This software is provided under the terms of the Minecraft Forge Public
* License v1.0.
*/
package net.minecraftforge.common;
import java.util.ArrayList;
import net.minecraftforge.common.Property.Type;
public class Property
{
public enum Type
{
STRING,
INTEGER,
BOOLEAN,
DOUBLE;
private static Type[] values = {STRING, INTEGER, BOOLEAN, DOUBLE};
public static Type tryParse(char id)
{
for (int x = 0; x < values.length; x++)
{
if (values[x].getID() == id)
{
return values[x];
}
}
return STRING;
}
public char getID()
{
return name().charAt(0);
}
}
private String name;
private String value;
public String comment;
private String[] values;
private final boolean wasRead;
private final boolean isList;
private final Type type;
private boolean changed = false;
public Property()
{
wasRead = false;
type = null;
isList = false;
}
public Property(String name, String value, Type type)
{
this(name, value, type, false);
}
Property(String name, String value, Type type, boolean read)
{
setName(name);
this.value = value;
this.type = type;
wasRead = read;
isList = false;
}
public Property(String name, String[] values, Type type)
{
this(name, values, type, false);
}
Property(String name, String[] values, Type type, boolean read)
{
setName(name);
this.type = type;
this.values = values;
wasRead = read;
isList = true;
}
/**
* Returns the value in this property as it's raw string.
*
* @return current value
*/
public String getString()
{
return value;
}
/**
* Returns the value in this property as an integer,
* if the value is not a valid integer, it will return -1.
*
* @return The value
*/
public int getInt()
{
return getInt(-1);
}
/**
* Returns the value in this property as an integer,
* if the value is not a valid integer, it will return the
* provided default.
*
* @param _default The default to provide if the current value is not a valid integer
* @return The value
*/
public int getInt(int _default)
{
try
{
return Integer.parseInt(value);
}
catch (NumberFormatException e)
{
return _default;
}
}
/**
* Checks if the current value stored in this property can be converted to an integer.
* @return True if the type of the Property is an Integer
*/
public boolean isIntValue()
{
try
{
Integer.parseInt(value);
return true;
}
catch (NumberFormatException e)
{
return false;
}
}
/**
* Returns the value in this property as a boolean,
* if the value is not a valid boolean, it will return the
* provided default.
*
* @param _default The default to provide
* @return The value as a boolean, or the default
*/
public boolean getBoolean(boolean _default)
{
if (isBooleanValue())
{
return Boolean.parseBoolean(value);
}
else
{
return _default;
}
}
/**
* Checks if the current value held by this property is a valid boolean value.
* @return True if it is a boolean value
*/
public boolean isBooleanValue()
{
return ("true".equals(value.toLowerCase()) || "false".equals(value.toLowerCase()));
}
/**
* Checks if the current value held by this property is a valid double value.
* @return True if the value can be converted to an double
*/
public boolean isDoubleValue()
{
try
{
Double.parseDouble(value);
return true;
}
catch (NumberFormatException e)
{
return false;
}
}
/**
* Returns the value in this property as a double,
* if the value is not a valid double, it will return the
* provided default.
*
* @param _default The default to provide if the current value is not a valid double
* @return The value
*/
public double getDouble(double _default)
{
try
{
return Double.parseDouble(value);
}
catch (NumberFormatException e)
{
return _default;
}
}
public String[] getStringList()
{
return values;
}
/**
* Returns the integer value of all values that can
* be parsed in the list.
*
* @return Array of length 0 if none of the values could be parsed.
*/
public int[] getIntList()
{
ArrayList<Integer> nums = new ArrayList<Integer>();
for (String value : values)
{
try
{
nums.add(Integer.parseInt(value));
}
catch (NumberFormatException e){}
}
int[] primitives = new int[nums.size()];
for (int i = 0; i < nums.size(); i++)
{
primitives[i] = nums.get(i);
}
return primitives;
}
/**
* Checks if all of the current values stored in this property can be converted to an integer.
* @return True if the type of the Property is an Integer List
*/
public boolean isIntList()
{
for (String value : values)
{
try
{
Integer.parseInt(value);
}
catch (NumberFormatException e)
{
return false;
}
}
return true;
}
/**
* Returns the boolean value of all values that can
* be parsed in the list.
*
* @return Array of length 0 if none of the values could be parsed.
*/
public boolean[] getBooleanList()
{
ArrayList<Boolean> tmp = new ArrayList<Boolean>();
for (String value : values)
{
try
{
tmp.add(Boolean.parseBoolean(value));
}
catch (NumberFormatException e){}
}
boolean[] primitives = new boolean[tmp.size()];
for (int i = 0; i < tmp.size(); i++)
{
primitives[i] = tmp.get(i);
}
return primitives;
}
/**
* Checks if all of current values stored in this property can be converted to a boolean.
* @return True if it is a boolean value
*/
public boolean isBooleanList()
{
for (String value : values)
{
if (!"true".equalsIgnoreCase(value) && !"false".equalsIgnoreCase(value))
{
return false;
}
}
return true;
}
/**
* Returns the double value of all values that can
* be parsed in the list.
*
* @return Array of length 0 if none of the values could be parsed.
*/
public double[] getDoubleList()
{
ArrayList<Double> tmp = new ArrayList<Double>();
for (String value : values)
{
try
{
tmp.add(Double.parseDouble(value));
}
catch (NumberFormatException e) {}
}
double[] primitives = new double[tmp.size()];
for (int i = 0; i < tmp.size(); i++)
{
primitives[i] = tmp.get(i);
}
return primitives;
}
/**
* Checks if all of the current values stored in this property can be converted to a double.
* @return True if the type of the Property is a double List
*/
public boolean isDoubleList()
{
for (String value : values)
{
try
{
Double.parseDouble(value);
}
catch (NumberFormatException e)
{
return false;
}
}
return true;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
/**
* Determines if this config value was just created, or if it was read from the config file.
* This is useful for mods who auto-assign there blocks to determine if the ID returned is
* a configured one, or a automatically generated one.
*
* @return True if this property was loaded from the config file with a value
*/
public boolean wasRead()
{
return wasRead;
}
public Type getType()
{
return type;
}
public boolean isList()
{
return isList;
}
public boolean hasChanged(){ return changed; }
void resetChangedState(){ changed = false; }
public void set(String value)
{
this.value = value;
changed = true;
}
public void set(String[] values)
{
this.values = values;
changed = true;
}
public void set(int value){ set(Integer.toString(value)); }
public void set(boolean value){ set(Boolean.toString(value)); }
public void set(double value){ set(Double.toString(value)); }
}
@@ -1,47 +0,0 @@
package net.minecraftforge.common;
import net.minecraft.block.Block;
import net.minecraft.block.BlockChest;
import net.minecraft.block.BlockDispenser;
import net.minecraft.block.BlockDropper;
import net.minecraft.block.BlockPistonBase;
import net.minecraft.world.World;
import static net.minecraftforge.common.ForgeDirection.*;
public class RotationHelper {
private static final ForgeDirection[] UP_DOWN_AXES = new ForgeDirection[] { UP, DOWN };
public static ForgeDirection[] getValidVanillaBlockRotations(Block block)
{
return block instanceof BlockChest ? UP_DOWN_AXES : VALID_DIRECTIONS;
}
public static boolean rotateVanillaBlock(Block block, World worldObj, int x, int y, int z, ForgeDirection axis)
{
if (worldObj.isRemote)
{
return false;
}
if (block instanceof BlockChest && (axis == UP || axis == DOWN))
{
return rotateBlock(worldObj, x, y, z, axis, 0x7);
}
if (block instanceof BlockPistonBase || block instanceof BlockDropper || block instanceof BlockDispenser)
{
return rotateBlock(worldObj, x, y, z, axis, 0x7);
}
return false;
}
private static boolean rotateBlock(World worldObj, int x, int y, int z, ForgeDirection axis, int mask)
{
int rotMeta = worldObj.getBlockMetadata(x, y, z);
int masked = rotMeta & ~mask;
ForgeDirection orientation = ForgeDirection.getOrientation(rotMeta & mask);
ForgeDirection rotated = orientation.getRotation(axis);
worldObj.setBlockMetadataWithNotify(x,y,z,rotated.ordinal() & mask | masked,3);
return true;
}
}
@@ -1,49 +0,0 @@
package net.minecraftforge.common.network;
import net.minecraft.network.INetworkManager;
import net.minecraft.network.NetLoginHandler;
import net.minecraft.network.packet.NetHandler;
import net.minecraft.network.packet.Packet1Login;
import net.minecraft.server.MinecraftServer;
import cpw.mods.fml.common.network.IConnectionHandler;
import cpw.mods.fml.common.network.Player;
public class ForgeConnectionHandler implements IConnectionHandler {
@Override
public void playerLoggedIn(Player player, NetHandler netHandler, INetworkManager manager)
{
}
@Override
public String connectionReceived(NetLoginHandler netHandler, INetworkManager manager)
{
return null;
}
@Override
public void connectionOpened(NetHandler netClientHandler, String server, int port, INetworkManager manager)
{
}
@Override
public void connectionOpened(NetHandler netClientHandler, MinecraftServer server, INetworkManager manager)
{
}
@Override
public void connectionClosed(INetworkManager manager)
{
}
@Override
public void clientLoggedIn(NetHandler clientHandler, INetworkManager manager, Packet1Login login)
{
}
}
@@ -1,20 +0,0 @@
package net.minecraftforge.common.network;
import net.minecraftforge.common.ForgeDummyContainer;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.network.NetworkModHandler;
public class ForgeNetworkHandler extends NetworkModHandler
{
public ForgeNetworkHandler(ForgeDummyContainer container)
{
super(container,container.getClass().getAnnotation(NetworkMod.class));
configureNetworkMod(container);
}
@Override
public boolean acceptVersion(String version)
{
return true;
}
}
@@ -1,187 +0,0 @@
package net.minecraftforge.common.network;
import java.util.Arrays;
import java.util.concurrent.ConcurrentMap;
import java.util.logging.Level;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.network.INetworkManager;
import net.minecraft.network.packet.NetHandler;
import net.minecraft.network.packet.Packet250CustomPayload;
import net.minecraftforge.common.network.packet.DimensionRegisterPacket;
import com.google.common.base.Throwables;
import com.google.common.collect.MapMaker;
import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteStreams;
import com.google.common.primitives.Bytes;
import com.google.common.primitives.Ints;
import com.google.common.primitives.UnsignedBytes;
import cpw.mods.fml.common.FMLLog;
import cpw.mods.fml.common.network.FMLNetworkException;
public abstract class ForgePacket
{
public static final String CHANNEL_ID = "FORGE";
enum Type
{
/**
* Registers a dimension for a provider on client
*/
REGISTERDIMENSION(DimensionRegisterPacket.class);
private Class<? extends ForgePacket> packetType;
private ConcurrentMap<INetworkManager, ForgePacket> partTracker;
private Type(Class<? extends ForgePacket> clazz)
{
this.packetType = clazz;
}
ForgePacket make()
{
try
{
return this.packetType.newInstance();
}
catch (Exception e)
{
Throwables.propagateIfPossible(e);
FMLLog.log(Level.SEVERE, e, "A bizarre critical error occured during packet encoding");
throw new FMLNetworkException(e);
}
}
private ForgePacket consumePart(INetworkManager network, byte[] data)
{
if (partTracker == null)
{
partTracker = new MapMaker().weakKeys().weakValues().makeMap();
}
if (!partTracker.containsKey(network))
{
partTracker.put(network, make());
}
ForgePacket pkt = partTracker.get(network);
ByteArrayDataInput bdi = ByteStreams.newDataInput(data);
int chunkIdx = UnsignedBytes.toInt(bdi.readByte());
int chunkTotal = UnsignedBytes.toInt(bdi.readByte());
int chunkLength = bdi.readInt();
if (pkt.partials == null)
{
pkt.partials = new byte[chunkTotal][];
}
pkt.partials[chunkIdx] = new byte[chunkLength];
bdi.readFully(pkt.partials[chunkIdx]);
for (int i = 0; i < pkt.partials.length; i++)
{
if (pkt.partials[i] == null)
{
return null;
}
}
return pkt;
}
}
private Type type;
private byte[][] partials;
public static Packet250CustomPayload[] makePacketSet(ForgePacket packet)
{
byte[] packetData = packet.generatePacket();
if (packetData.length < 32000)
{
return new Packet250CustomPayload[]
{
new Packet250CustomPayload(CHANNEL_ID,
Bytes.concat(new byte[]
{
UnsignedBytes.checkedCast(0), //IsMultipart: False
UnsignedBytes.checkedCast(packet.getID())
},
packetData))
};
}
else
{
byte[][] chunks = new byte[packetData.length / 32000 + 1][];
for (int i = 0; i < packetData.length / 32000 + 1; i++)
{
int len = Math.min(32000, packetData.length - i* 32000);
chunks[i] = Bytes.concat(new byte[]
{
UnsignedBytes.checkedCast(1), //IsMultipart: True
UnsignedBytes.checkedCast(packet.getID()), //Packet ID
UnsignedBytes.checkedCast(i), //Part Number
UnsignedBytes.checkedCast(chunks.length), //Total Parts
},
Ints.toByteArray(len), //Length
Arrays.copyOfRange(packetData, i * 32000, len + i * 32000));
}
Packet250CustomPayload[] ret = new Packet250CustomPayload[chunks.length];
for (int i = 0; i < chunks.length; i++)
{
ret[i] = new Packet250CustomPayload(CHANNEL_ID, chunks[i]);
}
return ret;
}
}
public static ForgePacket readPacket(INetworkManager network, byte[] payload)
{
boolean multipart = UnsignedBytes.toInt(payload[0]) == 1;
int type = UnsignedBytes.toInt(payload[1]);
Type eType = Type.values()[type];
byte[] data = Arrays.copyOfRange(payload, 2, payload.length);
if (multipart)
{
ForgePacket pkt = eType.consumePart(network, data);
if (pkt != null)
{
return pkt.consumePacket(Bytes.concat(pkt.partials));
}
return null;
}
else
{
return eType.make().consumePacket(data);
}
}
public ForgePacket()
{
for (Type t : Type.values())
{
if (t.packetType == getClass())
{
type = t;
continue;
}
}
if (type == null)
{
throw new RuntimeException("ForgePacket constructor called on ungregistered type.");
}
}
public byte getID()
{
return UnsignedBytes.checkedCast(type.ordinal());
}
public abstract byte[] generatePacket();
public abstract ForgePacket consumePacket(byte[] data);
public abstract void execute(INetworkManager network, EntityPlayer player);
}
@@ -1,26 +0,0 @@
package net.minecraftforge.common.network;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.network.INetworkManager;
import net.minecraft.network.NetLoginHandler;
import net.minecraft.network.packet.Packet250CustomPayload;
import cpw.mods.fml.common.network.FMLPacket;
import cpw.mods.fml.common.network.IPacketHandler;
import cpw.mods.fml.common.network.Player;
public class ForgePacketHandler implements IPacketHandler {
@Override
public void onPacketData(INetworkManager network, Packet250CustomPayload packet, Player player)
{
ForgePacket pkt = ForgePacket.readPacket(network, packet.data);
// Part of an incomplete multipart packet
if (pkt == null)
{
return;
}
pkt.execute(network, (EntityPlayer)player);
}
}
@@ -1,15 +0,0 @@
package net.minecraftforge.common.network;
import net.minecraft.network.packet.NetHandler;
import net.minecraft.network.packet.Packet131MapData;
import cpw.mods.fml.common.network.ITinyPacketHandler;
public class ForgeTinyPacketHandler implements ITinyPacketHandler {
@Override
public void handle(NetHandler handler, Packet131MapData mapData)
{
}
}
@@ -1,69 +0,0 @@
/**
* This software is provided under the terms of the Minecraft Forge Public
* License v1.0.
*/
package net.minecraftforge.common.network.packet;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.network.INetworkManager;
import net.minecraft.network.packet.NetHandler;
import net.minecraftforge.common.DimensionManager;
import net.minecraftforge.common.network.ForgePacket;
import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams;
/**
* This class offers the ability for servers to register dimensions on client.
*/
public class DimensionRegisterPacket extends ForgePacket
{
/** The dimension ID to register on client */
public int dimensionId;
/** The provider ID to register with dimension on client */
public int providerId;
// nullary constructor required by ForgePacket.make()
public DimensionRegisterPacket() {}
public DimensionRegisterPacket(int dimensionId, int providerId)
{
this.dimensionId = dimensionId;
this.providerId = providerId;
}
@Override
public byte[] generatePacket()
{
ByteArrayDataOutput dat = ByteStreams.newDataOutput();
dat.writeInt(this.dimensionId);
dat.writeInt(this.providerId);
return dat.toByteArray();
}
@Override
public ForgePacket consumePacket(byte[] data)
{
ByteArrayDataInput dat = ByteStreams.newDataInput(data);
dimensionId = dat.readInt();
providerId = dat.readInt();
return this;
}
@Override
public void execute(INetworkManager network, EntityPlayer player)
{
if (!(player instanceof EntityPlayerMP))
{
if (!DimensionManager.isDimensionRegistered(dimensionId))
{
DimensionManager.registerDimension(dimensionId, providerId);
}
}
}
}
@@ -1,21 +0,0 @@
package net.minecraftforge.event;
import net.minecraft.command.ICommand;
import net.minecraft.command.ICommandSender;
@Cancelable
public class CommandEvent extends Event
{
public final ICommand command;
public final ICommandSender sender;
public String[] parameters;
public Throwable exception;
public CommandEvent(ICommand command, ICommandSender sender, String[] parameters)
{
this.command = command;
this.sender = sender;
this.parameters = parameters;
}
}
@@ -1,78 +0,0 @@
package net.minecraftforge.event;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EnumCreatureType;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraft.world.WorldServer;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.Event.Result;
import net.minecraftforge.event.entity.living.LivingPackSizeEvent;
import net.minecraftforge.event.entity.living.LivingSpawnEvent;
import net.minecraftforge.event.entity.player.PlayerDestroyItemEvent;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action;
import net.minecraftforge.event.world.WorldEvent;
@SuppressWarnings("deprecation")
public class ForgeEventFactory
{
public static boolean doPlayerHarvestCheck(EntityPlayer player, Block block, boolean success)
{
PlayerEvent.HarvestCheck event = new PlayerEvent.HarvestCheck(player, block, success);
MinecraftForge.EVENT_BUS.post(event);
return event.success;
}
public static float getBreakSpeed(EntityPlayer player, Block block, int metadata, float original)
{
PlayerEvent.BreakSpeed event = new PlayerEvent.BreakSpeed(player, block, metadata, original);
return (MinecraftForge.EVENT_BUS.post(event) ? -1 : event.newSpeed);
}
public static PlayerInteractEvent onPlayerInteract(EntityPlayer player, Action action, int x, int y, int z, int face)
{
PlayerInteractEvent event = new PlayerInteractEvent(player, action, x, y, z, face);
MinecraftForge.EVENT_BUS.post(event);
return event;
}
public static void onPlayerDestroyItem(EntityPlayer player, ItemStack stack)
{
MinecraftForge.EVENT_BUS.post(new PlayerDestroyItemEvent(player, stack));
}
public static Result canEntitySpawn(EntityLiving entity, World world, float x, float y, float z)
{
LivingSpawnEvent.CheckSpawn event = new LivingSpawnEvent.CheckSpawn(entity, world, x, y, z);
MinecraftForge.EVENT_BUS.post(event);
return event.getResult();
}
public static boolean doSpecialSpawn(EntityLiving entity, World world, float x, float y, float z)
{
return MinecraftForge.EVENT_BUS.post(new LivingSpawnEvent.SpecialSpawn(entity, world, x, y, z));
}
public static List getPotentialSpawns(WorldServer world, EnumCreatureType type, int x, int y, int z, List oldList)
{
WorldEvent.PotentialSpawns event = new WorldEvent.PotentialSpawns(world, type, x, y, z, oldList);
if (MinecraftForge.EVENT_BUS.post(event))
{
return null;
}
return event.list;
}
public static int getMaxSpawnPackSize(EntityLiving entity)
{
LivingPackSizeEvent maxCanSpawnEvent = new LivingPackSizeEvent(entity);
MinecraftForge.EVENT_BUS.post(maxCanSpawnEvent);
return maxCanSpawnEvent.getResult() == Result.ALLOW ? maxCanSpawnEvent.maxPackSize : entity.getMaxSpawnedInChunk();
}
}
@@ -1,20 +0,0 @@
package net.minecraftforge.event;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.util.ChatMessageComponent;
@Cancelable
public class ServerChatEvent extends Event
{
public final String message, username;
public final EntityPlayerMP player;
public ChatMessageComponent component;
public ServerChatEvent(EntityPlayerMP player, String message, ChatMessageComponent component)
{
super();
this.message = message;
this.player = player;
this.username = player.username;
this.component = component;
}
}
@@ -1,16 +0,0 @@
package net.minecraftforge.event.brewing;
import net.minecraft.item.ItemStack;
import net.minecraftforge.event.Event;
public class PotionBrewedEvent extends Event
{
/**
* The brewing stacks in the brewing stand. Each index has the possibility to be null, so make sure you check.
*/
public ItemStack[] brewingStacks;
public PotionBrewedEvent(ItemStack[] brewingStacks)
{
this.brewingStacks = brewingStacks;
}
}
@@ -1,49 +0,0 @@
package net.minecraftforge.event.entity;
import net.minecraft.entity.Entity;
import net.minecraft.world.World;
import net.minecraftforge.event.Event;
public class EntityEvent extends Event
{
public final Entity entity;
public EntityEvent(Entity entity)
{
this.entity = entity;
}
public static class EntityConstructing extends EntityEvent
{
public EntityConstructing(Entity entity)
{
super(entity);
}
}
public static class CanUpdate extends EntityEvent
{
public boolean canUpdate = false;
public CanUpdate(Entity entity)
{
super(entity);
}
}
public static class EnteringChunk extends EntityEvent
{
public int newChunkX;
public int newChunkZ;
public int oldChunkX;
public int oldChunkZ;
public EnteringChunk(Entity entity, int newChunkX, int newChunkZ, int oldChunkX, int oldChunkZ)
{
super(entity);
this.newChunkX = newChunkX;
this.newChunkZ = newChunkZ;
this.oldChunkX = oldChunkX;
this.oldChunkZ = oldChunkZ;
}
}
}
@@ -1,18 +0,0 @@
package net.minecraftforge.event.entity;
import net.minecraft.entity.Entity;
import net.minecraft.world.World;
import net.minecraftforge.event.Cancelable;
@Cancelable
public class EntityJoinWorldEvent extends EntityEvent
{
public final World world;
public EntityJoinWorldEvent(Entity entity, World world)
{
super(entity);
this.world = world;
}
}
@@ -1,20 +0,0 @@
package net.minecraftforge.event.entity;
import net.minecraft.entity.Entity;
import net.minecraftforge.event.Cancelable;
@Cancelable
public class PlaySoundAtEntityEvent extends EntityEvent
{
public String name;
public final float volume;
public final float pitch;
public PlaySoundAtEntityEvent(Entity entity, String name, float volume, float pitch)
{
super(entity);
this.name = name;
this.volume = volume;
this.pitch = pitch;
}
}
@@ -1,18 +0,0 @@
package net.minecraftforge.event.entity.living;
import net.minecraft.util.DamageSource;
import net.minecraft.entity.EntityLivingBase;
import net.minecraftforge.event.Cancelable;
@Cancelable
public class LivingAttackEvent extends LivingEvent
{
public final DamageSource source;
public final float ammount;
public LivingAttackEvent(EntityLivingBase entity, DamageSource source, float ammount)
{
super(entity);
this.source = source;
this.ammount = ammount;
}
}
@@ -1,17 +0,0 @@
package net.minecraftforge.event.entity.living;
import net.minecraft.util.DamageSource;
import net.minecraft.entity.EntityLivingBase;
import net.minecraftforge.event.Cancelable;
@Cancelable
public class LivingDeathEvent extends LivingEvent
{
public final DamageSource source;
public LivingDeathEvent(EntityLivingBase entity, DamageSource source)
{
super(entity);
this.source = source;
}
}
@@ -1,28 +0,0 @@
package net.minecraftforge.event.entity.living;
import java.util.ArrayList;
import net.minecraft.util.DamageSource;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.EntityLivingBase;
import net.minecraftforge.event.Cancelable;
@Cancelable
public class LivingDropsEvent extends LivingEvent
{
public final DamageSource source;
public final ArrayList<EntityItem> drops;
public final int lootingLevel;
public final boolean recentlyHit;
public final int specialDropValue;
public LivingDropsEvent(EntityLivingBase entity, DamageSource source, ArrayList<EntityItem> drops, int lootingLevel, boolean recentlyHit, int specialDropValue)
{
super(entity);
this.source = source;
this.drops = drops;
this.lootingLevel = lootingLevel;
this.recentlyHit = recentlyHit;
this.specialDropValue = specialDropValue;
}
}
@@ -1,26 +0,0 @@
package net.minecraftforge.event.entity.living;
import net.minecraft.entity.EntityLivingBase;
import net.minecraftforge.event.Cancelable;
import net.minecraftforge.event.entity.EntityEvent;
public class LivingEvent extends EntityEvent
{
public final EntityLivingBase entityLiving;
public LivingEvent(EntityLivingBase entity)
{
super(entity);
entityLiving = entity;
}
@Cancelable
public static class LivingUpdateEvent extends LivingEvent
{
public LivingUpdateEvent(EntityLivingBase e){ super(e); }
}
public static class LivingJumpEvent extends LivingEvent
{
public LivingJumpEvent(EntityLivingBase e){ super(e); }
}
}
@@ -1,15 +0,0 @@
package net.minecraftforge.event.entity.living;
import net.minecraft.entity.EntityLivingBase;
import net.minecraftforge.event.Cancelable;
@Cancelable
public class LivingFallEvent extends LivingEvent
{
public float distance;
public LivingFallEvent(EntityLivingBase entity, float distance)
{
super(entity);
this.distance = distance;
}
}
@@ -1,19 +0,0 @@
package net.minecraftforge.event.entity.living;
import net.minecraft.util.DamageSource;
import net.minecraft.entity.EntityLivingBase;
import net.minecraftforge.event.Cancelable;
@Cancelable
public class LivingHurtEvent extends LivingEvent
{
public final DamageSource source;
public float ammount;
public LivingHurtEvent(EntityLivingBase entity, DamageSource source, float ammount)
{
super(entity);
this.source = source;
this.ammount = ammount;
}
}
@@ -1,15 +0,0 @@
package net.minecraftforge.event.entity.living;
import net.minecraft.entity.EntityLivingBase;
public class LivingSetAttackTargetEvent extends LivingEvent
{
public final EntityLivingBase target;
public LivingSetAttackTargetEvent(EntityLivingBase entity, EntityLivingBase target)
{
super(entity);
this.target = target;
}
}
@@ -1,50 +0,0 @@
package net.minecraftforge.event.entity.living;
import net.minecraft.entity.EntityLiving;
import net.minecraft.world.World;
import net.minecraftforge.event.Cancelable;
import net.minecraftforge.event.Event.HasResult;
public class LivingSpawnEvent extends LivingEvent
{
public final World world;
public final float x;
public final float y;
public final float z;
public LivingSpawnEvent(EntityLiving entity, World world, float x, float y, float z)
{
super(entity);
this.world = world;
this.x = x;
this.y = y;
this.z = z;
}
/**
* Fires before mob spawn events.
*
* Result is significant:
* DEFAULT: use vanilla spawn rules
* ALLOW: allow the spawn
* DENY: deny the spawn
*
*/
@HasResult
public static class CheckSpawn extends LivingSpawnEvent
{
public CheckSpawn(EntityLiving entity, World world, float x, float y, float z)
{
super(entity, world, x, y, z);
}
}
@Cancelable
public static class SpecialSpawn extends LivingSpawnEvent
{
public SpecialSpawn(EntityLiving entity, World world, float x, float y, float z)
{
super(entity, world, x, y, z);
}
}
}
@@ -1,15 +0,0 @@
package net.minecraftforge.event.entity.minecart;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityMinecart;
public class MinecartCollisionEvent extends MinecartEvent
{
public final Entity collider;
public MinecartCollisionEvent(EntityMinecart minecart, Entity collider)
{
super(minecart);
this.collider = collider;
}
}
@@ -1,16 +0,0 @@
package net.minecraftforge.event.entity.minecart;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityMinecart;
import net.minecraftforge.event.entity.EntityEvent;
public class MinecartEvent extends EntityEvent
{
public final EntityMinecart minecart;
public MinecartEvent(EntityMinecart minecart)
{
super(minecart);
this.minecart = minecart;
}
}
@@ -1,17 +0,0 @@
package net.minecraftforge.event.entity.minecart;
import net.minecraft.entity.item.EntityMinecart;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraftforge.event.Cancelable;
@Cancelable
public class MinecartInteractEvent extends MinecartEvent
{
public final EntityPlayer player;
public MinecartInteractEvent(EntityMinecart minecart, EntityPlayer player)
{
super(minecart);
this.player = player;
}
}
@@ -1,18 +0,0 @@
package net.minecraftforge.event.entity.minecart;
import net.minecraft.entity.item.EntityMinecart;
public class MinecartUpdateEvent extends MinecartEvent
{
public final float x;
public final float y;
public final float z;
public MinecartUpdateEvent(EntityMinecart minecart, float x, float y, float z)
{
super(minecart);
this.x = x;
this.y = y;
this.z = z;
}
}
@@ -1,19 +0,0 @@
package net.minecraftforge.event.entity.player;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraftforge.event.Cancelable;
@Cancelable
public class ArrowLooseEvent extends PlayerEvent
{
public final ItemStack bow;
public int charge;
public ArrowLooseEvent(EntityPlayer player, ItemStack bow, int charge)
{
super(player);
this.bow = bow;
this.charge = charge;
}
}
@@ -1,17 +0,0 @@
package net.minecraftforge.event.entity.player;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraftforge.event.Cancelable;
@Cancelable
public class ArrowNockEvent extends PlayerEvent
{
public ItemStack result;
public ArrowNockEvent(EntityPlayer player, ItemStack result)
{
super(player);
this.result = result;
}
}
@@ -1,16 +0,0 @@
package net.minecraftforge.event.entity.player;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraftforge.event.Cancelable;
@Cancelable
public class AttackEntityEvent extends PlayerEvent
{
public final Entity target;
public AttackEntityEvent(EntityPlayer player, Entity target)
{
super(player);
this.target = target;
}
}
@@ -1,16 +0,0 @@
package net.minecraftforge.event.entity.player;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraftforge.event.Cancelable;
@Cancelable
public class EntityInteractEvent extends PlayerEvent
{
public final Entity target;
public EntityInteractEvent(EntityPlayer player, Entity target)
{
super(player);
this.target = target;
}
}
@@ -1,15 +0,0 @@
package net.minecraftforge.event.entity.player;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
public class PlayerDestroyItemEvent extends PlayerEvent
{
public final ItemStack original;
public PlayerDestroyItemEvent(EntityPlayer player, ItemStack original)
{
super(player);
this.original = original;
}
}
@@ -1,48 +0,0 @@
package net.minecraftforge.event.entity.player;
import net.minecraft.block.Block;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraftforge.event.Cancelable;
import net.minecraftforge.event.entity.living.LivingEvent;
public class PlayerEvent extends LivingEvent
{
public final EntityPlayer entityPlayer;
public PlayerEvent(EntityPlayer player)
{
super(player);
entityPlayer = player;
}
public static class HarvestCheck extends PlayerEvent
{
public final Block block;
public boolean success;
public HarvestCheck(EntityPlayer player, Block block, boolean success)
{
super(player);
this.block = block;
this.success = success;
}
}
@Cancelable
public static class BreakSpeed extends PlayerEvent
{
public final Block block;
public final int metadata;
public final float originalSpeed;
public float newSpeed = 0.0f;
public BreakSpeed(EntityPlayer player, Block block, int metadata, float original)
{
super(player);
this.block = block;
this.metadata = metadata;
this.originalSpeed = original;
this.newSpeed = original;
}
}
}
@@ -1,47 +0,0 @@
package net.minecraftforge.event.entity.player;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
import net.minecraftforge.event.Cancelable;
import net.minecraftforge.event.Event;
import static net.minecraftforge.event.Event.Result;
import static net.minecraftforge.event.Event.Result.*;
@Cancelable
public class PlayerInteractEvent extends PlayerEvent
{
public static enum Action
{
RIGHT_CLICK_AIR,
RIGHT_CLICK_BLOCK,
LEFT_CLICK_BLOCK
}
public final Action action;
public final int x;
public final int y;
public final int z;
public final int face;
public Result useBlock = DEFAULT;
public Result useItem = DEFAULT;
public PlayerInteractEvent(EntityPlayer player, Action action, int x, int y, int z, int face)
{
super(player);
this.action = action;
this.x = x;
this.y = y;
this.z = z;
this.face = face;
if (face == -1) useBlock = DENY;
}
@Override
public void setCanceled(boolean cancel)
{
super.setCanceled(cancel);
useBlock = (cancel ? DENY : useBlock == DENY ? DEFAULT : useBlock);
useItem = (cancel ? DENY : useItem == DENY ? DEFAULT : useItem);
}
}
@@ -1,21 +0,0 @@
package net.minecraftforge.event.entity.player;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EnumStatus;
public class PlayerSleepInBedEvent extends PlayerEvent
{
public EnumStatus result = null;
public final int x;
public final int y;
public final int z;
public PlayerSleepInBedEvent(EntityPlayer player, int x, int y, int z)
{
super(player);
this.x = x;
this.y = y;
this.z = z;
}
}
@@ -1,60 +0,0 @@
package net.minecraftforge.event.terraingen;
import java.util.Random;
import net.minecraft.world.World;
import net.minecraft.world.gen.feature.WorldGenerator;
import net.minecraftforge.event.*;
public class OreGenEvent extends Event
{
public final World world;
public final Random rand;
public final int worldX;
public final int worldZ;
public OreGenEvent(World world, Random rand, int worldX, int worldZ)
{
this.world = world;
this.rand = rand;
this.worldX = worldX;
this.worldZ = worldZ;
}
public static class Pre extends OreGenEvent
{
public Pre(World world, Random rand, int worldX, int worldZ)
{
super(world, rand, worldX, worldZ);
}
}
public static class Post extends OreGenEvent
{
public Post(World world, Random rand, int worldX, int worldZ)
{
super(world, rand, worldX, worldZ);
}
}
/**
* This event is fired when an ore is generated in a chunk.
*
* You can set the result to DENY to prevent the default ore generation.
*/
@HasResult
public static class GenerateMinable extends OreGenEvent
{
public static enum EventType { COAL, DIAMOND, DIRT, GOLD, GRAVEL, IRON, LAPIS, REDSTONE, CUSTOM }
public final EventType type;
public final WorldGenerator generator;
public GenerateMinable(World world, Random rand, WorldGenerator generator, int worldX, int worldZ, EventType type)
{
super(world, rand, worldX, worldZ);
this.generator = generator;
this.type = type;
}
}
}
@@ -1,64 +0,0 @@
package net.minecraftforge.event.terraingen;
import java.util.Random;
import net.minecraft.world.World;
import net.minecraft.world.chunk.IChunkProvider;
import net.minecraftforge.event.world.*;
public class PopulateChunkEvent extends ChunkProviderEvent
{
public final World world;
public final Random rand;
public final int chunkX;
public final int chunkZ;
public final boolean hasVillageGenerated;
public PopulateChunkEvent(IChunkProvider chunkProvider, World world, Random rand, int chunkX, int chunkZ, boolean hasVillageGenerated)
{
super(chunkProvider);
this.world = world;
this.rand = rand;
this.chunkX = chunkX;
this.chunkZ = chunkZ;
this.hasVillageGenerated = hasVillageGenerated;
}
public static class Pre extends PopulateChunkEvent
{
public Pre(IChunkProvider chunkProvider, World world, Random rand, int chunkX, int chunkZ, boolean hasVillageGenerated)
{
super(chunkProvider, world, rand, chunkX, chunkZ, hasVillageGenerated);
}
}
public static class Post extends PopulateChunkEvent
{
public Post(IChunkProvider chunkProvider, World world, Random rand, int chunkX, int chunkZ, boolean hasVillageGenerated)
{
super(chunkProvider, world, rand, chunkX, chunkZ, hasVillageGenerated);
}
}
/**
* This event is fired when a chunk is populated with a terrain feature.
*
* You can set the result to DENY to prevent the default generation
* of a terrain feature.
*/
@HasResult
public static class Populate extends PopulateChunkEvent
{
/** Use CUSTOM to filter custom event types
*/
public static enum EventType { DUNGEON, FIRE, GLOWSTONE, ICE, LAKE, LAVA, NETHER_LAVA, CUSTOM }
public final EventType type;
public Populate(IChunkProvider chunkProvider, World world, Random rand, int chunkX, int chunkZ, boolean hasVillageGenerated, EventType type)
{
super(chunkProvider, world, rand, chunkX, chunkZ, hasVillageGenerated);
this.type = type;
}
}
}
@@ -1,30 +0,0 @@
package net.minecraftforge.event.terraingen;
import java.util.Random;
import net.minecraft.world.World;
import net.minecraftforge.event.Event.HasResult;
import net.minecraftforge.event.world.WorldEvent;
/**
* This event is fired when a sapling grows a tree.
*
* You can set the result to DENY to prevent the default tree growth.
*/
@HasResult
public class SaplingGrowTreeEvent extends WorldEvent
{
public final int x;
public final int y;
public final int z;
public final Random rand;
public SaplingGrowTreeEvent(World world, Random rand, int x, int y, int z)
{
super(world);
this.rand = rand;
this.x = x;
this.y = y;
this.z = z;
}
}
@@ -1,43 +0,0 @@
package net.minecraftforge.event.terraingen;
import net.minecraft.world.gen.layer.GenLayer;
import net.minecraft.world.WorldType;
import net.minecraftforge.event.Event;
public class WorldTypeEvent extends Event
{
public final WorldType worldType;
public WorldTypeEvent(WorldType worldType)
{
this.worldType = worldType;
}
public static class BiomeSize extends WorldTypeEvent
{
public final byte originalSize;
public byte newSize;
public BiomeSize(WorldType worldType, byte original)
{
super(worldType);
originalSize = original;
newSize = original;
}
}
public static class InitBiomeGens extends WorldTypeEvent
{
public final long seed;
public final GenLayer[] originalBiomeGens;
public GenLayer[] newBiomeGens;
public InitBiomeGens(WorldType worldType, long seed, GenLayer[] original)
{
super(worldType);
this.seed = seed;
originalBiomeGens = original;
newBiomeGens = original.clone();
}
}
}
@@ -1,36 +0,0 @@
package net.minecraftforge.event.world;
import net.minecraft.world.chunk.Chunk;
import net.minecraft.nbt.NBTTagCompound;
public class ChunkDataEvent extends ChunkEvent
{
private final NBTTagCompound data;
public ChunkDataEvent(Chunk chunk, NBTTagCompound data)
{
super(chunk);
this.data = data;
}
public NBTTagCompound getData()
{
return data;
}
public static class Load extends ChunkDataEvent
{
public Load(Chunk chunk, NBTTagCompound data)
{
super(chunk, data);
}
}
public static class Save extends ChunkDataEvent
{
public Save(Chunk chunk, NBTTagCompound data)
{
super(chunk, data);
}
}
}
@@ -1,37 +0,0 @@
package net.minecraftforge.event.world;
import net.minecraft.world.chunk.Chunk;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
public class ChunkEvent extends WorldEvent
{
private final Chunk chunk;
public ChunkEvent(Chunk chunk)
{
super(chunk.worldObj);
this.chunk = chunk;
}
public Chunk getChunk()
{
return chunk;
}
public static class Load extends ChunkEvent
{
public Load(Chunk chunk)
{
super(chunk);
}
}
public static class Unload extends ChunkEvent
{
public Unload(Chunk chunk)
{
super(chunk);
}
}
}
@@ -1,29 +0,0 @@
package net.minecraftforge.event.world;
import net.minecraft.world.ChunkCoordIntPair;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.server.management.PlayerInstance;
import net.minecraft.world.WorldServer;
import net.minecraftforge.event.Event;
public class ChunkWatchEvent extends Event
{
public final ChunkCoordIntPair chunk;
public final EntityPlayerMP player;
public ChunkWatchEvent(ChunkCoordIntPair chunk, EntityPlayerMP player)
{
this.chunk = chunk;
this.player = player;
}
public static class Watch extends ChunkWatchEvent
{
public Watch(ChunkCoordIntPair chunk, EntityPlayerMP player) { super(chunk, player); }
}
public static class UnWatch extends ChunkWatchEvent
{
public UnWatch(ChunkCoordIntPair chunkLocation, EntityPlayerMP player) { super(chunkLocation, player); }
}
}
@@ -1,66 +0,0 @@
package net.minecraftforge.event.world;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.entity.EnumCreatureType;
import net.minecraft.world.World;
import net.minecraft.world.biome.SpawnListEntry;
import net.minecraftforge.event.Cancelable;
import net.minecraftforge.event.Event;
public class WorldEvent extends Event
{
public final World world;
public WorldEvent(World world)
{
this.world = world;
}
public static class Load extends WorldEvent
{
public Load(World world) { super(world); }
}
public static class Unload extends WorldEvent
{
public Unload(World world) { super(world); }
}
public static class Save extends WorldEvent
{
public Save(World world) { super(world); }
}
/**
* Called by WorldServer to gather a list of all possible entities that can spawn at the specified location.
* Canceling the event will result in a empty list, meaning no entity will be spawned.
*/
@Cancelable
public static class PotentialSpawns extends WorldEvent
{
public final EnumCreatureType type;
public final int x;
public final int y;
public final int z;
public final List<SpawnListEntry> list;
public PotentialSpawns(World world, EnumCreatureType type, int x, int y, int z, List oldList)
{
super(world);
this.x = x;
this.y = y;
this.z = z;
this.type = type;
if (oldList != null)
{
this.list = (List<SpawnListEntry>)oldList;
}
else
{
this.list = new ArrayList<SpawnListEntry>();
}
}
}
}
@@ -1,58 +0,0 @@
package net.minecraftforge.liquids;
import net.minecraft.nbt.NBTTagCompound;
/**
* Implementors of this interface are a liquid which may receive a block implementation and can be placed in the world.
*
* @author cpw
*
*/
public interface IBlockLiquid extends ILiquid {
/**
* Controls the type of block that is generated by this IBlockLiquid
*
*/
public enum BlockType {
/**
* No block. Completeness really.
*/
NONE,
/**
* Vanilla style block, up to 8 flowing states. May be able to generate new sources.
*/
VANILLA,
/**
* Finite liquid style, uses cellular automata to model flowing behaviour.
*/
FINITE;
}
/**
* Can this liquid, when placed in a specific configuration, generate new source blocks of the liquid.
* @return if this liquid will generate new sources
*/
public boolean willGenerateSources();
/**
* @return the distance this liquid will flow if placed in the world. Maximum of 7 levels for vanilla types.
*/
public int getFlowDistance();
/**
* @return the RGB rendering for this liquid
*/
public byte[] getLiquidRGB();
/**
* Get the texture file for rendering the liquid
* @return the texture file for this liquid
*/
public String getLiquidBlockTextureFile();
/**
* Custom properties of the liquid.
* @return a compound tag of custom liquid properties
*/
public NBTTagCompound getLiquidProperties();
}
@@ -1,35 +0,0 @@
/**
* Copyright (c) SpaceToad, 2011
* http://www.mod-buildcraft.com
*
* BuildCraft is distributed under the terms of the Minecraft Mod Public
* License 1.0, or MMPL. Please check the contents of the license located in
* http://www.mod-buildcraft.com/MMPL-1.0.txt
*/
package net.minecraftforge.liquids;
/**
* Liquids implement this interface
*
*/
public interface ILiquid {
/**
* The itemId of the liquid item
* @return the itemId
*/
public int stillLiquidId();
/**
* Is this liquid a metadata based liquid
* @return if this is a metadata liquid
*/
public boolean isMetaSensitive();
/**
* The item metadata of the liquid
* @return the metadata of the liquid
*/
public int stillLiquidMeta();
}
@@ -1,44 +0,0 @@
package net.minecraftforge.liquids;
/**
* A tank is the unit of interaction with liquid inventories.
*
* @author cpw
*/
public interface ILiquidTank {
/**
* @return LiquidStack representing the liquid contained in the tank, null if empty.
*/
LiquidStack getLiquid();
/**
* @return capacity of this tank
*/
int getCapacity();
/**
*
* @param resource
* @param doFill
* @return Amount of liquid used for filling.
*/
int fill(LiquidStack resource, boolean doFill);
/**
*
* @param maxDrain
* @param doDrain
* @return Null if nothing was drained, otherwise a LiquidStack containing the drained.
*/
LiquidStack drain(int maxDrain, boolean doDrain);
/**
* Positive values indicate a positive liquid pressure (liquid wants to leave this tank)
* Negative values indicate a negative liquid pressure (liquid wants to fill this tank)
* Zero indicates no pressure
*
* @return a number indicating tank pressure
*/
public int getTankPressure();
}
@@ -1,56 +0,0 @@
package net.minecraftforge.liquids;
import net.minecraftforge.common.ForgeDirection;
public interface ITankContainer {
/**
* Fills liquid into internal tanks, distribution is left to the ITankContainer.
* @param from Orientation the liquid is pumped in from.
* @param resource LiquidStack representing the maximum amount of liquid filled into the ITankContainer
* @param doFill If false filling will only be simulated.
* @return Amount of resource that was filled into internal tanks.
*/
int fill(ForgeDirection from, LiquidStack resource, boolean doFill);
/**
* Fills liquid into the specified internal tank.
* @param tankIndex the index of the tank to fill
* @param resource LiquidStack representing the maximum amount of liquid filled into the ITankContainer
* @param doFill If false filling will only be simulated.
* @return Amount of resource that was filled into internal tanks.
*/
int fill(int tankIndex, LiquidStack resource, boolean doFill);
/**
* Drains liquid out of internal tanks, distribution is left to the ITankContainer.
* @param from Orientation the liquid is drained to.
* @param maxDrain Maximum amount of liquid to drain.
* @param doDrain If false draining will only be simulated.
* @return LiquidStack representing the liquid and amount actually drained from the ITankContainer
*/
LiquidStack drain(ForgeDirection from, int maxDrain, boolean doDrain);
/**
* Drains liquid out of the specified internal tank.
* @param tankIndex the index of the tank to drain
* @param maxDrain Maximum amount of liquid to drain.
* @param doDrain If false draining will only be simulated.
* @return LiquidStack representing the liquid and amount actually drained from the ITankContainer
*/
LiquidStack drain(int tankIndex, int maxDrain, boolean doDrain);
/**
* @param direction tank side: UNKNOWN for default tank set
* @return Array of {@link LiquidTank}s contained in this ITankContainer for this direction
*/
ILiquidTank[] getTanks(ForgeDirection direction);
/**
* Return the tank that this tank container desired to be used for the specified liquid type from the specified direction
*
* @param direction the direction
* @param type the liquid type, null is always an acceptable value
* @return a tank or null for no such tank
*/
ILiquidTank getTank(ForgeDirection direction, LiquidStack type);
}
@@ -1,31 +0,0 @@
/**
* Copyright (c) SpaceToad, 2011
* http://www.mod-buildcraft.com
*
* BuildCraft is distributed under the terms of the Minecraft Mod Public
* License 1.0, or MMPL. Please check the contents of the license located in
* http://www.mod-buildcraft.com/MMPL-1.0.txt
*/
package net.minecraftforge.liquids;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
public class LiquidContainerData {
public final LiquidStack stillLiquid;
public final ItemStack filled;
public final ItemStack container;
public LiquidContainerData(LiquidStack stillLiquid, ItemStack filled, ItemStack container) {
this.stillLiquid = stillLiquid;
this.filled = filled;
this.container = container;
if(stillLiquid == null || filled == null || container == null)
throw new RuntimeException("stillLiquid, filled, or container is null, this is an error");
}
}
@@ -1,131 +0,0 @@
package net.minecraftforge.liquids;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
public class LiquidContainerRegistry
{
public static final int BUCKET_VOLUME = 1000;
public static final ItemStack EMPTY_BUCKET = new ItemStack(Item.bucketEmpty);
private static Map<List, LiquidContainerData> mapFilledItemFromLiquid = new HashMap();
private static Map<List, LiquidContainerData> mapLiquidFromFilledItem = new HashMap();
private static Set<List> setContainerValidation = new HashSet();
private static Set<List> setLiquidValidation = new HashSet();
private static ArrayList<LiquidContainerData> liquids = new ArrayList();
/**
* Default registrations
*/
static
{
registerLiquid(new LiquidContainerData(new LiquidStack(Block.waterStill, LiquidContainerRegistry.BUCKET_VOLUME), new ItemStack(Item.bucketWater), new ItemStack(Item.bucketEmpty)));
registerLiquid(new LiquidContainerData(new LiquidStack(Block.lavaStill, LiquidContainerRegistry.BUCKET_VOLUME), new ItemStack(Item.bucketLava), new ItemStack(Item.bucketEmpty)));
registerLiquid(new LiquidContainerData(new LiquidStack(Block.waterStill, LiquidContainerRegistry.BUCKET_VOLUME), new ItemStack(Item.potion), new ItemStack(Item.glassBottle)));
// registerLiquid(new LiquidContainerData(new LiquidStack(Item.bucketMilk, LiquidContainerRegistry.BUCKET_VOLUME), new ItemStack(Item.bucketMilk), new ItemStack(Item.bucketEmpty)));
}
/**
* To register a container with a non-bucket size, the LiquidContainerData entry simply needs to use a size other than LiquidManager.BUCKET_VOLUME
*/
public static void registerLiquid(LiquidContainerData data)
{
mapFilledItemFromLiquid.put(Arrays.asList(data.container.itemID, data.container.getItemDamage(), data.stillLiquid.itemID, data.stillLiquid.itemMeta), data);
mapLiquidFromFilledItem.put(Arrays.asList(data.filled.itemID, data.filled.getItemDamage()), data);
setContainerValidation.add(Arrays.asList(data.container.itemID, data.container.getItemDamage()));
setLiquidValidation.add(Arrays.asList(data.stillLiquid.itemID, data.stillLiquid.itemMeta));
liquids.add(data);
}
public static LiquidStack getLiquidForFilledItem(ItemStack filledContainer)
{
if (filledContainer == null)
{
return null;
}
LiquidContainerData ret = mapLiquidFromFilledItem.get(Arrays.asList(filledContainer.itemID, filledContainer.getItemDamage()));
return ret == null ? null : ret.stillLiquid.copy();
}
public static ItemStack fillLiquidContainer(LiquidStack liquid, ItemStack emptyContainer)
{
if (emptyContainer == null || liquid == null)
{
return null;
}
LiquidContainerData ret = mapFilledItemFromLiquid.get(Arrays.asList(emptyContainer.itemID, emptyContainer.getItemDamage(), liquid.itemID, liquid.itemMeta));
if (ret != null && liquid.amount >= ret.stillLiquid.amount)
{
return ret.filled.copy();
}
return null;
}
public static boolean containsLiquid(ItemStack filledContainer, LiquidStack liquid)
{
if (filledContainer == null || liquid == null)
{
return false;
}
LiquidContainerData ret = mapLiquidFromFilledItem.get(Arrays.asList(filledContainer.itemID, filledContainer.getItemDamage()));
return ret != null && ret.stillLiquid.isLiquidEqual(liquid);
}
public static boolean isBucket(ItemStack container)
{
if (container == null)
{
return false;
}
if (container.isItemEqual(EMPTY_BUCKET))
{
return true;
}
LiquidContainerData ret = mapLiquidFromFilledItem.get(Arrays.asList(container.itemID, container.getItemDamage()));
return ret != null && ret.container.isItemEqual(EMPTY_BUCKET);
}
public static boolean isContainer(ItemStack container)
{
return isEmptyContainer(container) || isFilledContainer(container);
}
public static boolean isEmptyContainer(ItemStack emptyContainer)
{
return emptyContainer != null && setContainerValidation.contains(Arrays.asList(emptyContainer.itemID, emptyContainer.getItemDamage()));
}
public static boolean isFilledContainer(ItemStack filledContainer)
{
return filledContainer != null && getLiquidForFilledItem(filledContainer) != null;
}
public static boolean isLiquid(ItemStack item)
{
return item != null && setLiquidValidation.contains(Arrays.asList(item.itemID, item.getItemDamage()));
}
public static LiquidContainerData[] getRegisteredLiquidContainerData()
{
return liquids.toArray(new LiquidContainerData[liquids.size()]);
}
}
@@ -1,123 +0,0 @@
package net.minecraftforge.liquids;
import java.util.HashMap;
import java.util.Map;
import net.minecraft.block.Block;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.Event;
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
import com.google.common.collect.ImmutableMap;
/**
* When creating liquids you should register them with this class.
*
* @author CovertJaguar <railcraft.wikispaces.com>
*/
public abstract class LiquidDictionary
{
private static BiMap<String, LiquidStack> liquids = HashBiMap.create();
/**
* When creating liquids you should call this function.
*
* Upon passing it a name and liquid item it will return either
* a preexisting implementation of that liquid or the liquid passed in.
*
*
* @param name the name of the liquid
* @param liquid the liquid to use if one doesn't exist
* @return the matching liquid stack
*/
public static LiquidStack getOrCreateLiquid(String name, LiquidStack liquid)
{
if (liquid == null)
{
throw new NullPointerException("You cannot register a null LiquidStack");
}
LiquidStack existing = liquids.get(name);
if(existing != null) {
return existing.copy();
}
liquids.put(name, liquid.copy());
MinecraftForge.EVENT_BUS.post(new LiquidRegisterEvent(name, liquid));
return liquid;
}
/**
* Returns the liquid matching the name,
* if such a liquid exists.
*
* Can return null.
*
* @param name the name of the liquid
* @param amount the amout of liquid
* @return a liquidstack for the requested liquid
*/
public static LiquidStack getLiquid(String name, int amount)
{
LiquidStack liquid = liquids.get(name);
if(liquid == null)
return null;
liquid = liquid.copy();
liquid.amount = amount;
return liquid;
}
public static LiquidStack getCanonicalLiquid(String name)
{
return liquids.get(name);
}
/**
* Get an immutable list of the liquids defined
*
* @return the defined liquids
*/
public static Map<String, LiquidStack> getLiquids()
{
return ImmutableMap.copyOf(liquids);
}
/**
* Fired when a new liquid is created
*
*/
public static class LiquidRegisterEvent extends Event
{
public final String Name;
public final LiquidStack Liquid;
public LiquidRegisterEvent(String name, LiquidStack liquid)
{
this.Name = name;
this.Liquid = liquid.copy();
}
}
static
{
getOrCreateLiquid("Water", new LiquidStack(Block.waterStill, LiquidContainerRegistry.BUCKET_VOLUME));
getOrCreateLiquid("Lava", new LiquidStack(Block.lavaStill, LiquidContainerRegistry.BUCKET_VOLUME));
}
public static String findLiquidName(LiquidStack reference)
{
if (reference != null)
{
return liquids.inverse().get(reference);
}
else
{
return null;
}
}
public static LiquidStack getCanonicalLiquid(LiquidStack liquidStack)
{
return liquids.get(liquids.inverse().get(liquidStack));
}
}
@@ -1,96 +0,0 @@
package net.minecraftforge.liquids;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.Event;
public class LiquidEvent extends Event {
public final LiquidStack liquid;
public final int x;
public final int y;
public final int z;
public final World world;
public LiquidEvent(LiquidStack liquid, World world, int x, int y, int z)
{
this.liquid = liquid;
this.world = world;
this.x = x;
this.y = y;
this.z = z;
}
/**
* Mods should fire this event when they move liquids around (pipe networks etc)
*
* @author cpw
*
*/
public static class LiquidMotionEvent extends LiquidEvent
{
public LiquidMotionEvent(LiquidStack liquid, World world, int x, int y, int z)
{
super(liquid, world, x, y, z);
}
}
/**
* Mods should fire this event when a liquid is {@link ILiquidTank#fill(LiquidStack, boolean)} their tank implementation.
* {@link LiquidTank} does.
*
* @author cpw
*
*/
public static class LiquidFillingEvent extends LiquidEvent
{
public final ILiquidTank tank;
public LiquidFillingEvent(LiquidStack liquid, World world, int x, int y, int z, ILiquidTank tank)
{
super(liquid, world, x, y, z);
this.tank = tank;
}
}
/**
* Mods should fire this event when a liquid is {@link ILiquidTank#drain(int, boolean)} from their tank.
* @author cpw
*
*/
public static class LiquidDrainingEvent extends LiquidEvent
{
public final ILiquidTank tank;
public LiquidDrainingEvent(LiquidStack liquid, World world, int x, int y, int z, ILiquidTank tank)
{
super(liquid, world, x, y, z);
this.tank = tank;
}
}
/**
* Mods should fire this event when a liquid "spills", for example, if a block containing liquid is broken.
*
* @author cpw
*
*/
public static class LiquidSpilledEvent extends LiquidEvent
{
public LiquidSpilledEvent(LiquidStack liquid, World world, int x, int y, int z)
{
super(liquid, world, x, y, z);
}
}
/**
* A handy shortcut for firing the various liquid events
*
* @param event
*/
public static final void fireEvent(LiquidEvent event)
{
MinecraftForge.EVENT_BUS.post(event);
}
}
@@ -1,256 +0,0 @@
package net.minecraftforge.liquids;
import static cpw.mods.fml.relauncher.Side.CLIENT;
import com.google.common.base.Objects;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.BlockFluid;
import net.minecraft.client.renderer.texture.TextureManager;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.Icon;
/**
* ItemStack substitute for liquids
* Things of note: they are equal if their items are equal. Amount does NOT matter for java equals() testing
* <br/>
* The canonical liquidstack is probably the only one that has a lot of the rendering data on it. Use {@link #canonical()}
* to get it.
*
* @author SirSengir
*/
public class LiquidStack
{
public final int itemID;
public int amount;
public final int itemMeta;
public NBTTagCompound extra;
public LiquidStack(int itemID, int amount) { this(itemID, amount, 0); }
public LiquidStack(Item item, int amount) { this(item.itemID, amount, 0); }
public LiquidStack(Block block, int amount) { this(block.blockID, amount, 0); }
public LiquidStack(int itemID, int amount, int itemDamage)
{
this.itemID = itemID;
this.amount = amount;
this.itemMeta = itemDamage;
}
public LiquidStack(int itemID, int amount, int itemDamage, NBTTagCompound nbt)
{
this(itemID, amount, itemDamage);
if (nbt != null)
{
extra = (NBTTagCompound)nbt.copy();
}
}
public NBTTagCompound writeToNBT(NBTTagCompound nbt)
{
nbt.setInteger("Amount", amount);
nbt.setShort("Id", (short)itemID);
nbt.setShort("Meta", (short)itemMeta);
String name = LiquidDictionary.findLiquidName(this);
if(name != null)
{
nbt.setString("LiquidName", name);
}
if (extra != null)
{
nbt.setTag("extra", extra);
}
return nbt;
}
/**
* @return A copy of this LiquidStack
*/
public LiquidStack copy()
{
return new LiquidStack(itemID, amount, itemMeta, extra);
}
/**
* @param other
* @return true if this LiquidStack contains the same liquid as the one passed in.
*/
public boolean isLiquidEqual(LiquidStack other)
{
return other != null && itemID == other.itemID && itemMeta == other.itemMeta && (extra == null ? other.extra == null : extra.equals(other.extra));
}
/**
* @param other
* @return true if this LiquidStack contains the other liquid (liquids are equal and amount >= other.amount).
*/
public boolean containsLiquid(LiquidStack other)
{
return isLiquidEqual(other) && amount >= other.amount;
}
/**
* @param other ItemStack containing liquids.
* @return true if this LiquidStack contains the same liquid as the one passed in.
*/
public boolean isLiquidEqual(ItemStack other)
{
if (other == null)
{
return false;
}
if (itemID == other.itemID && itemMeta == other.getItemDamage())
{
return true;
}
return isLiquidEqual(LiquidContainerRegistry.getLiquidForFilledItem(other));
}
/**
* @return ItemStack representation of this LiquidStack
*/
public ItemStack asItemStack()
{
ItemStack stack = new ItemStack(itemID, 1, itemMeta);
if (extra != null)
{
stack.stackTagCompound = (NBTTagCompound)extra.copy();
}
return stack;
}
/**
* Reads a liquid stack from the passed nbttagcompound and returns it.
*
* @param nbt
* @return the liquid stack
*/
public static LiquidStack loadLiquidStackFromNBT(NBTTagCompound nbt)
{
if (nbt == null)
{
return null;
}
String liquidName = nbt.getString("LiquidName");
int itemID = nbt.getShort("Id");
int itemMeta = nbt.getShort("Meta");
LiquidStack liquid = LiquidDictionary.getCanonicalLiquid(liquidName);
if(liquid != null) {
itemID = liquid.itemID;
itemMeta = liquid.itemMeta;
}
// if the item is not existent, and no liquid dictionary is found, null returns
else if (Item.itemsList[itemID] == null)
{
return null;
}
int amount = nbt.getInteger("Amount");
LiquidStack liquidstack = new LiquidStack(itemID, amount, itemMeta);
if (nbt.hasKey("extra"))
{
liquidstack.extra = nbt.getCompoundTag("extra");
}
return liquidstack.itemID == 0 ? null : liquidstack;
}
private String textureSheet = "/terrain.png";
/**
* Return the textureSheet used for this liquid stack's texture Icon
* Defaults to '/terrain.png'
*
* See {@link #getRenderingIcon()} for the actual icon
*
* @return The texture sheet
*/
public String getTextureSheet()
{
return textureSheet;
}
/**
* Set the texture sheet for this icon (usually /terrain.png or /gui/items.png)
*
* See also the {@link #setRenderingIcon(Icon)} for the icon itself
*
* @param textureSheet
* @return the liquid stack
*/
public LiquidStack setTextureSheet(String textureSheet)
{
this.textureSheet = textureSheet;
return this;
}
@SideOnly(CLIENT)
private Icon renderingIcon;
/**
* Get the rendering icon for this liquid stack, for presentation in the world or in GUIs.
* Defaults to handling water and lava, and returns the set rendering icon otherwise.
*
* See {@link #getTextureSheet()} to get the texture sheet this icon is associated with
*
* @return The icon for rendering this liquid
*/
@SideOnly(CLIENT)
public Icon getRenderingIcon()
{
if (itemID == Block.waterStill.blockID)
{
return BlockFluid.func_94424_b("water");
}
else if (itemID == Block.lavaStill.blockID)
{
return BlockFluid.func_94424_b("lava");
}
return renderingIcon;
}
/**
* Set the icon for rendering this liquid
* It should be refreshed whenever textures are refreshed.
*
* See also {@link #setTextureSheet(String)} for setting the sheet this icon is associated with
*
* @param icon The icon to render
* @return The liquid stack
*/
@SideOnly(CLIENT)
public LiquidStack setRenderingIcon(Icon icon)
{
this.renderingIcon = icon;
return this;
}
@Override
public final int hashCode()
{
return 31 * itemMeta + itemID;
}
@Override
public final boolean equals(Object ob)
{
if (ob instanceof LiquidStack)
{
LiquidStack ls = (LiquidStack)ob;
return ls.itemID == itemID && ls.itemMeta == itemMeta && (extra == null ? ls.extra == null : extra.equals(ls.extra));
}
return false;
}
/**
* Get the canonical version of this liquid stack (will contain things like icons and texturesheets)
* @return The canonical liquidstack
*/
public LiquidStack canonical()
{
return LiquidDictionary.getCanonicalLiquid(this);
}
}
@@ -1,180 +0,0 @@
package net.minecraftforge.liquids;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
/**
* Reference implementation of ILiquidTank. Use this or implement your own.
*/
public class LiquidTank implements ILiquidTank {
private LiquidStack liquid;
private int capacity;
private int tankPressure;
private TileEntity tile;
public LiquidTank(int capacity)
{
this(null, capacity);
}
public LiquidTank(int liquidId, int quantity, int capacity)
{
this(new LiquidStack(liquidId, quantity), capacity);
}
public LiquidTank(int liquidId, int quantity, int capacity, TileEntity tile)
{
this(liquidId, quantity, capacity);
this.tile = tile;
}
public LiquidTank(LiquidStack liquid, int capacity)
{
this.liquid = liquid;
this.capacity = capacity;
}
public LiquidTank(LiquidStack liquid, int capacity, TileEntity tile)
{
this(liquid, capacity);
this.tile = tile;
}
@Override
public LiquidStack getLiquid()
{
return this.liquid;
}
@Override
public int getCapacity()
{
return this.capacity;
}
public void setLiquid(LiquidStack liquid)
{
this.liquid = liquid;
}
public void setCapacity(int capacity)
{
this.capacity = capacity;
}
@Override
public int fill(LiquidStack resource, boolean doFill)
{
if (resource == null || resource.itemID <= 0) return 0;
if (liquid == null || liquid.itemID <= 0)
{
if (resource.amount <= capacity)
{
if (doFill) this.liquid = resource.copy();
return resource.amount;
}
else
{
if (doFill)
{
this.liquid = resource.copy();
this.liquid.amount = capacity;
if (tile != null)
LiquidEvent.fireEvent(new LiquidEvent.LiquidFillingEvent(liquid, tile.worldObj, tile.xCoord, tile.yCoord, tile.zCoord, this));
}
return capacity;
}
}
if (!liquid.isLiquidEqual(resource)) return 0;
int space = capacity - liquid.amount;
if (resource.amount <= space)
{
if (doFill) this.liquid.amount += resource.amount;
return resource.amount;
}
else
{
if (doFill) this.liquid.amount = capacity;
return space;
}
}
@Override
public LiquidStack drain(int maxDrain, boolean doDrain)
{
if (liquid == null || liquid.itemID <= 0) return null;
if (liquid.amount <= 0) return null;
int used = maxDrain;
if (liquid.amount < used) used = liquid.amount;
if (doDrain)
{
liquid.amount -= used;
}
LiquidStack drained = new LiquidStack(liquid.itemID, used, liquid.itemMeta);
// Reset liquid if emptied
if (liquid.amount <= 0) liquid = null;
if (doDrain && tile != null)
LiquidEvent.fireEvent(new LiquidEvent.LiquidDrainingEvent(drained, tile.worldObj, tile.xCoord, tile.yCoord, tile.zCoord, this));
return drained;
}
@Override
public int getTankPressure()
{
return tankPressure;
}
public void setTankPressure(int pressure)
{
this.tankPressure = pressure;
}
public String getLiquidName()
{
return liquid!= null ? LiquidDictionary.findLiquidName(liquid) : null;
}
public boolean containsValidLiquid()
{
return LiquidDictionary.findLiquidName(liquid) != null;
}
public NBTTagCompound writeToNBT(NBTTagCompound nbt)
{
if (containsValidLiquid())
{
liquid.writeToNBT(nbt);
}
else
{
nbt.setString("emptyTank", "");
}
return nbt;
}
public LiquidTank readFromNBT(NBTTagCompound nbt)
{
if (!nbt.hasKey("emptyTank"))
{
LiquidStack liquid = LiquidStack.loadLiquidStackFromNBT(nbt);
if (liquid != null)
{
setLiquid(liquid);
}
}
return this;
}
}
@@ -1,318 +0,0 @@
package net.minecraftforge.oredict;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.item.crafting.ShapedRecipes;
import net.minecraft.item.crafting.ShapelessRecipes;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.Event;
public class OreDictionary
{
private static boolean hasInit = false;
private static int maxID = 0;
private static HashMap<String, Integer> oreIDs = new HashMap<String, Integer>();
private static HashMap<Integer, ArrayList<ItemStack>> oreStacks = new HashMap<Integer, ArrayList<ItemStack>>();
/**
* Minecraft changed from -1 to Short.MAX_VALUE in 1.5 release for the "block wildcard". Use this in case it
* changes again.
*/
public static final int WILDCARD_VALUE = Short.MAX_VALUE;
static {
initVanillaEntries();
}
public static void initVanillaEntries()
{
if (!hasInit)
{
registerOre("logWood", new ItemStack(Block.wood, 1, WILDCARD_VALUE));
registerOre("plankWood", new ItemStack(Block.planks, 1, WILDCARD_VALUE));
registerOre("slabWood", new ItemStack(Block.woodSingleSlab, 1, WILDCARD_VALUE));
registerOre("stairWood", Block.stairsWoodOak);
registerOre("stairWood", Block.stairsWoodBirch);
registerOre("stairWood", Block.stairsWoodJungle);
registerOre("stairWood", Block.stairsWoodSpruce);
registerOre("stickWood", Item.stick);
registerOre("treeSapling", new ItemStack(Block.sapling, 1, WILDCARD_VALUE));
registerOre("treeLeaves", new ItemStack(Block.leaves, 1, WILDCARD_VALUE));
registerOre("oreGold", Block.oreGold);
registerOre("oreIron", Block.oreIron);
registerOre("oreLapis", Block.oreLapis);
registerOre("oreDiamond", Block.oreDiamond);
registerOre("oreRedstone", Block.oreRedstone);
registerOre("oreEmerald", Block.oreEmerald);
registerOre("oreQuartz", Block.oreNetherQuartz);
}
// Build our list of items to replace with ore tags
Map<ItemStack, String> replacements = new HashMap<ItemStack, String>();
replacements.put(new ItemStack(Block.planks, 1, WILDCARD_VALUE), "plankWood");
replacements.put(new ItemStack(Item.stick), "stickWood");
// Register dyes
String[] dyes =
{
"dyeBlack",
"dyeRed",
"dyeGreen",
"dyeBrown",
"dyeBlue",
"dyePurple",
"dyeCyan",
"dyeLightGray",
"dyeGray",
"dyePink",
"dyeLime",
"dyeYellow",
"dyeLightBlue",
"dyeMagenta",
"dyeOrange",
"dyeWhite"
};
for(int i = 0; i < 16; i++)
{
ItemStack dye = new ItemStack(Item.dyePowder, 1, i);
if (!hasInit)
{
registerOre(dyes[i], dye);
}
replacements.put(dye, dyes[i]);
}
hasInit = true;
ItemStack[] replaceStacks = replacements.keySet().toArray(new ItemStack[replacements.keySet().size()]);
// Ignore recipes for the following items
ItemStack[] exclusions = new ItemStack[]
{
new ItemStack(Block.blockLapis),
new ItemStack(Item.cookie),
};
List recipes = CraftingManager.getInstance().getRecipeList();
List<IRecipe> recipesToRemove = new ArrayList<IRecipe>();
List<IRecipe> recipesToAdd = new ArrayList<IRecipe>();
// Search vanilla recipes for recipes to replace
for(Object obj : recipes)
{
if(obj instanceof ShapedRecipes)
{
ShapedRecipes recipe = (ShapedRecipes)obj;
ItemStack output = recipe.getRecipeOutput();
if (output != null && containsMatch(false, exclusions, output))
{
continue;
}
if(containsMatch(true, recipe.recipeItems, replaceStacks))
{
recipesToRemove.add(recipe);
recipesToAdd.add(new ShapedOreRecipe(recipe, replacements));
}
}
else if(obj instanceof ShapelessRecipes)
{
ShapelessRecipes recipe = (ShapelessRecipes)obj;
ItemStack output = recipe.getRecipeOutput();
if (output != null && containsMatch(false, exclusions, output))
{
continue;
}
if(containsMatch(true, (ItemStack[])recipe.recipeItems.toArray(new ItemStack[recipe.recipeItems.size()]), replaceStacks))
{
recipesToRemove.add((IRecipe)obj);
IRecipe newRecipe = new ShapelessOreRecipe(recipe, replacements);
recipesToAdd.add(newRecipe);
}
}
}
recipes.removeAll(recipesToRemove);
recipes.addAll(recipesToAdd);
if (recipesToRemove.size() > 0)
{
System.out.println("Replaced " + recipesToRemove.size() + " ore recipies");
}
}
/**
* Gets the integer ID for the specified ore name.
* If the name does not have a ID it assigns it a new one.
*
* @param name The unique name for this ore 'oreIron', 'ingotIron', etc..
* @return A number representing the ID for this ore type
*/
public static int getOreID(String name)
{
Integer val = oreIDs.get(name);
if (val == null)
{
val = maxID++;
oreIDs.put(name, val);
oreStacks.put(val, new ArrayList<ItemStack>());
}
return val;
}
/**
* Reverse of getOreID, will not create new entries.
*
* @param id The ID to translate to a string
* @return The String name, or "Unknown" if not found.
*/
public static String getOreName(int id)
{
for (Map.Entry<String, Integer> entry : oreIDs.entrySet())
{
if (id == entry.getValue())
{
return entry.getKey();
}
}
return "Unknown";
}
/**
* Gets the integer ID for the specified item stack.
* If the item stack is not linked to any ore, this will return -1 and no new entry will be created.
*
* @param itemStack The item stack of the ore.
* @return A number representing the ID for this ore type, or -1 if couldn't find it.
*/
public static int getOreID(ItemStack itemStack)
{
if (itemStack == null)
{
return -1;
}
for(Entry<Integer, ArrayList<ItemStack>> ore : oreStacks.entrySet())
{
for(ItemStack target : ore.getValue())
{
if(itemStack.itemID == target.itemID && (target.getItemDamage() == WILDCARD_VALUE || itemStack.getItemDamage() == target.getItemDamage()))
{
return ore.getKey();
}
}
}
return -1; // didn't find it.
}
/**
* Retrieves the ArrayList of items that are registered to this ore type.
* Creates the list as empty if it did not exist.
*
* @param name The ore name, directly calls getOreID
* @return An arrayList containing ItemStacks registered for this ore
*/
public static ArrayList<ItemStack> getOres(String name)
{
return getOres(getOreID(name));
}
/**
* Retrieves a list of all unique ore names that are already registered.
*
* @return All unique ore names that are currently registered.
*/
public static String[] getOreNames()
{
return oreIDs.keySet().toArray(new String[oreIDs.keySet().size()]);
}
/**
* Retrieves the ArrayList of items that are registered to this ore type.
* Creates the list as empty if it did not exist.
*
* @param id The ore ID, see getOreID
* @return An arrayList containing ItemStacks registered for this ore
*/
public static ArrayList<ItemStack> getOres(Integer id)
{
ArrayList<ItemStack> val = oreStacks.get(id);
if (val == null)
{
val = new ArrayList<ItemStack>();
oreStacks.put(id, val);
}
return val;
}
private static boolean containsMatch(boolean strict, ItemStack[] inputs, ItemStack... targets)
{
for (ItemStack input : inputs)
{
for (ItemStack target : targets)
{
if (itemMatches(target, input, strict))
{
return true;
}
}
}
return false;
}
public static boolean itemMatches(ItemStack target, ItemStack input, boolean strict)
{
if (input == null && target != null || input != null && target == null)
{
return false;
}
return (target.itemID == input.itemID && ((target.getItemDamage() == WILDCARD_VALUE && !strict) || target.getItemDamage() == input.getItemDamage()));
}
//Convenience functions that make for cleaner code mod side. They all drill down to registerOre(String, int, ItemStack)
public static void registerOre(String name, Item ore){ registerOre(name, new ItemStack(ore)); }
public static void registerOre(String name, Block ore){ registerOre(name, new ItemStack(ore)); }
public static void registerOre(String name, ItemStack ore){ registerOre(name, getOreID(name), ore); }
public static void registerOre(int id, Item ore){ registerOre(id, new ItemStack(ore)); }
public static void registerOre(int id, Block ore){ registerOre(id, new ItemStack(ore)); }
public static void registerOre(int id, ItemStack ore){ registerOre(getOreName(id), id, ore); }
/**
* Registers a ore item into the dictionary.
* Raises the registerOre function in all registered handlers.
*
* @param name The name of the ore
* @param id The ID of the ore
* @param ore The ore's ItemStack
*/
private static void registerOre(String name, int id, ItemStack ore)
{
ArrayList<ItemStack> ores = getOres(id);
ore = ore.copy();
ores.add(ore);
MinecraftForge.EVENT_BUS.post(new OreRegisterEvent(name, ore));
}
public static class OreRegisterEvent extends Event
{
public final String Name;
public final ItemStack Ore;
public OreRegisterEvent(String name, ItemStack ore)
{
this.Name = name;
this.Ore = ore;
}
}
}
@@ -1,164 +0,0 @@
package net.minecraftforge.transformers;
import java.util.List;
import net.minecraft.launchwrapper.IClassTransformer;
import net.minecraftforge.event.Event;
import net.minecraftforge.event.ListenerList;
import org.objectweb.asm.*;
import org.objectweb.asm.tree.*;
import static org.objectweb.asm.Opcodes.*;
import static org.objectweb.asm.Type.*;
import static org.objectweb.asm.ClassWriter.*;
public class EventTransformer implements IClassTransformer
{
public EventTransformer()
{
}
@Override
public byte[] transform(String name, String transformedName, byte[] bytes)
{
if (bytes == null || name.equals("net.minecraftforge.event.Event") || name.startsWith("net.minecraft.") || name.indexOf('.') == -1)
{
return bytes;
}
ClassReader cr = new ClassReader(bytes);
ClassNode classNode = new ClassNode();
cr.accept(classNode, 0);
try
{
if (buildEvents(classNode))
{
ClassWriter cw = new ClassWriter(COMPUTE_MAXS | COMPUTE_FRAMES);
classNode.accept(cw);
return cw.toByteArray();
}
return bytes;
}
catch (ClassNotFoundException ex)
{
// Discard silently- it's just noise
}
catch (Exception e)
{
e.printStackTrace();
}
return bytes;
}
@SuppressWarnings("unchecked")
private boolean buildEvents(ClassNode classNode) throws Exception
{
Class<?> parent = this.getClass().getClassLoader().loadClass(classNode.superName.replace('/', '.'));
if (!Event.class.isAssignableFrom(parent))
{
return false;
}
boolean hasSetup = false;
boolean hasGetListenerList = false;
boolean hasDefaultCtr = false;
Class<?> listenerListClazz = Class.forName("net.minecraftforge.event.ListenerList", false, getClass().getClassLoader());
Type tList = Type.getType(listenerListClazz);
for (MethodNode method : (List<MethodNode>)classNode.methods)
{
if (method.name.equals("setup") &&
method.desc.equals(Type.getMethodDescriptor(VOID_TYPE)) &&
(method.access & ACC_PROTECTED) == ACC_PROTECTED)
{
hasSetup = true;
}
if (method.name.equals("getListenerList") &&
method.desc.equals(Type.getMethodDescriptor(tList)) &&
(method.access & ACC_PUBLIC) == ACC_PUBLIC)
{
hasGetListenerList = true;
}
if (method.name.equals("<init>") &&
method.desc.equals(Type.getMethodDescriptor(VOID_TYPE)))
{
hasDefaultCtr = true;
}
}
if (hasSetup)
{
if (!hasGetListenerList)
{
throw new RuntimeException("Event class defines setup() but does not define getListenerList! " + classNode.name);
}
else
{
return false;
}
}
Type tSuper = Type.getType(classNode.superName);
//Add private static ListenerList LISTENER_LIST
classNode.fields.add(new FieldNode(ACC_PRIVATE | ACC_STATIC, "LISTENER_LIST", tList.getDescriptor(), null, null));
/*Add:
* public <init>()
* {
* super();
* }
*/
MethodNode method = new MethodNode(ASM4, ACC_PUBLIC, "<init>", getMethodDescriptor(VOID_TYPE), null, null);
method.instructions.add(new VarInsnNode(ALOAD, 0));
method.instructions.add(new MethodInsnNode(INVOKESPECIAL, tSuper.getInternalName(), "<init>", getMethodDescriptor(VOID_TYPE)));
method.instructions.add(new InsnNode(RETURN));
if (!hasDefaultCtr)
{
classNode.methods.add(method);
}
/*Add:
* protected void setup()
* {
* super.setup();
* if (LISTENER_LIST != NULL)
* {
* return;
* }
* LISTENER_LIST = new ListenerList(super.getListenerList());
* }
*/
method = new MethodNode(ASM4, ACC_PROTECTED, "setup", getMethodDescriptor(VOID_TYPE), null, null);
method.instructions.add(new VarInsnNode(ALOAD, 0));
method.instructions.add(new MethodInsnNode(INVOKESPECIAL, tSuper.getInternalName(), "setup", getMethodDescriptor(VOID_TYPE)));
method.instructions.add(new FieldInsnNode(GETSTATIC, classNode.name, "LISTENER_LIST", tList.getDescriptor()));
LabelNode initLisitener = new LabelNode();
method.instructions.add(new JumpInsnNode(IFNULL, initLisitener));
method.instructions.add(new InsnNode(RETURN));
method.instructions.add(initLisitener);
method.instructions.add(new FrameNode(F_SAME, 0, null, 0, null));
method.instructions.add(new TypeInsnNode(NEW, tList.getInternalName()));
method.instructions.add(new InsnNode(DUP));
method.instructions.add(new VarInsnNode(ALOAD, 0));
method.instructions.add(new MethodInsnNode(INVOKESPECIAL, tSuper.getInternalName(), "getListenerList", getMethodDescriptor(tList)));
method.instructions.add(new MethodInsnNode(INVOKESPECIAL, tList.getInternalName(), "<init>", getMethodDescriptor(VOID_TYPE, tList)));
method.instructions.add(new FieldInsnNode(PUTSTATIC, classNode.name, "LISTENER_LIST", tList.getDescriptor()));
method.instructions.add(new InsnNode(RETURN));
classNode.methods.add(method);
/*Add:
* public ListenerList getListenerList()
* {
* return this.LISTENER_LIST;
* }
*/
method = new MethodNode(ASM4, ACC_PUBLIC, "getListenerList", getMethodDescriptor(tList), null, null);
method.instructions.add(new FieldInsnNode(GETSTATIC, classNode.name, "LISTENER_LIST", tList.getDescriptor()));
method.instructions.add(new InsnNode(ARETURN));
classNode.methods.add(method);
return true;
}
}
Binary file not shown.
Submodule fml deleted from 902772ed0c.
+14
View File
@@ -0,0 +1,14 @@
* text eol=lf
*.bat text eol=crlf
*.patch text eol=lf
*.java text eol=lf
*.gradle text eol=crlf
*.png binary
*.exe binary
*.dll binary
*.jar binary
*.lzma binary
*.zip binary
*.pyd binary
*.cfg text eol=lf
*.py text eol=lf
+21
View File
@@ -0,0 +1,21 @@
#eclipse
/bin
/.settings
/.classpath
#idea
/.idea
*.iml
#gradle
/build
/buildSrc
/.gradle
#occupational hazards
/eclipse/
/repo/
#Patch reject
*.rej
+28
View File
@@ -0,0 +1,28 @@
This is Forge Mod Loader.
You can find the source code at all times at https://github.com/MinecraftForge/FML
This minecraft mod is a clean open source implementation of a mod loader for minecraft servers
and minecraft clients.
The code is authored by cpw.
It began by partially implementing an API defined by the client side ModLoader, authored by Risugami.
http://www.minecraftforum.net/topic/75440-
This support has been dropped as of Minecraft release 1.7, as Risugami no longer maintains ModLoader.
It also contains suggestions and hints and generous helpings of code from LexManos, author of MinecraftForge.
http://www.minecraftforge.net/
Additionally, it contains an implementation of topological sort based on that
published at http://keithschwarz.com/interesting/code/?dir=topological-sort
It also contains code from the Maven project for performing versioned dependency
resolution. http://maven.apache.org/
It also contains a partial repackaging of the javaxdelta library from http://sourceforge.net/projects/javaxdelta/
with credit to it's authors.
Forge Mod Loader downloads components from the Minecraft Coder Pack
(http://mcp.ocean-labs.de/index.php/Main_Page) with kind permission from the MCP team.
+491
View File
@@ -0,0 +1,491 @@
This minecraft mod, Forge Mod Loader, including all parts herein except as noted below,
is licensed under the GNU LGPL v2.1 or later.
Homepage: https://github.com/MinecraftForge/FML
This software includes portions from the Apache Maven project at
http://maven.apache.org/ specifically the ComparableVersion.java code. It is
included based on guidelines at
http://www.softwarefreedom.org/resources/2007/gpl-non-gpl-collaboration.html
with notices intact. The only change is a non-functional change of package name.
This software contains a partial repackaging of javaxdelta, a BSD licensed program for generating
binary differences and applying them, sourced from the subversion at http://sourceforge.net/projects/javaxdelta/
authored by genman, heikok, pivot.
The only changes are to replace some Trove collection types with standard Java collections, and repackaged.
=== MCP Data ===
This software includes data from the Minecraft Coder Pack (MCP), with kind permission
from them. The license to MCP data is not transitive - distribution of this data by
third parties requires independent licensing from the MCP team. This data is not
redistributable without permission from the MCP team.
=== Sharing ===
I grant permission for some parts of FML to be redistributed outside the terms of the LGPL, for the benefit of
the minecraft modding community. All contributions to these parts should be licensed under the same additional grant.
-- Runtime patcher --
License is granted to redistribute the runtime patcher code (common/cpw/mods/fml/patcher and subdirectories) under
any alternative open source license as classified by the OSI (http://opensource.org/licenses)
-- ASM transformers --
License is granted to redistribute the ASM transformer code (common/cpw/mods/fml/common/asm/ and subdirectories)
under any alternative open source license as classified by the OSI (http://opensource.org/licenses)
========
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
+94
View File
@@ -0,0 +1,94 @@
This is Forge Mod Loader, or FML for short, by cpw.
More information can be found at https://github.com/MinecraftForge/FML/wiki
It is a clean reimplementation of a mod loading system for client and server.
It can be installed on its own, or as part of Minecraft Forge.
----------------------
About Forge Mod Loader
----------------------
Environments and compatibility
==============================
FML covers two main environments: client and server. All environments share
the main mod loading code base, with additional varying hooks based on the
specific environment.
There are some very visible changes to the client when FML is installed.
There are some bukkit compatibility hooks available, consult MCPC+, now known as Cauldron
for more information.
Minecraft Forge in all cases bundles FML as it's modloading technology of choice
because FML is open source, freely distributable, and can be easily updated by
contributors through github.
Notable integrations
====================
Optifine has FML compatibility. It varies from Optifine release to release, however
in general it will work well alongside an FML or
Minecraft Forge installation. FML will detect and ensure the good operation of
Optifine (you can see it in your client as an additional data line on the
bottom left).
Mod information
===============
FML exposes the mod information through a mod list visible on the main screen as
well as some small branding enhancements. For full data mods need to provide an
information file. This file is a standard format so hopefully tools providing
launch capabilities can also leverage this content.
-------------------------------
Binary installation information
-------------------------------
If you have downloaded a binary zip file you can install it as follows (client
or server):
Installation
============
To install on a server, simply execute the FML or Forge jar file, with a copy of
minecraft_server-@[email protected] placed in the same directory. FML will launch
it's patched copy.
To install on a client, run the installer by executing java -jar <installer>.jar.
It will identify the location of you minecraft installation (this can be customized)
and create a new profile "FML" there.
Forge Installation
==================
This code also ships as a part of Minecraft Forge. You do not need to install it
separately from your Minecraft Forge installation. Minecraft Forge contains the
exact same code as this. You should not install FML if you are also installing
Minecraft Forge.
-------------------------------------------
Source installation information for modders
-------------------------------------------
This code follows the Minecraft Forge installation methodology. It will apply
some small patches to the vanilla MCP source code, giving you and it access
to some of the data and functions you need to build a successful mod.
Note also that the patches are built against "unrenamed" MCP source code (aka
srgnames) - this means that you will not be able to read them directly against
normal code.
Source pack installation information:
Standalone source installation
==============================
To install this source code for development purposes, extract this zip file.
It ships with a demonstration mod. Run "gradle setupDevWorkspace" to create
a gradle environment primed with FML. Run gradle eclipse or gradle idea to
create an IDE workspace of your choice.
Refer to ForgeGradle for more information about the gradle environment
Forge source installation
=========================
MinecraftForge ships with this code and installs it as part of the forge
installation process, no further action is required on your part.
For reference this is version @MAJOR@.@MINOR@.@REV@.@BUILD@ of FML
for Minecraft version @MCVERSION@.
+111
View File
@@ -0,0 +1,111 @@
buildscript {
repositories {
mavenCentral()
mavenLocal()
maven {
name = "forge"
url = "http://files.minecraftforge.net/maven"
}
maven {
name = "sonatype"
url = "https://oss.sonatype.org/content/repositories/snapshots/"
}
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
}
}
import static net.minecraftforge.gradle.dev.FmlDevPlugin.*
apply plugin: 'maven'
apply plugin: 'fmldev'
repositories {
flatDir {
name "fileRepo"
dirs "repo"
}
}
minecraft {
version = '1.7.10'
mcpVersion = '9.05'
fmlDir = projectDir.getAbsolutePath();
mainClass = 'cpw.mods.fml.relauncher.ServerLaunchWrapper'
tweakClass = 'cpw.mods.fml.common.launcher.FMLTweaker'
installerVersion = "1.4"
}
group = 'net.minecraftforge'
version = getVersionFromGit(getProject())
jenkins {
job = 'fml'
}
uploadArchives {
repositories {
if (project.hasProperty("filesmaven")) {
logger.info('Publishing to files server')
mavenDeployer {
configuration = configurations.deployJars
repository(url: project.filesmaven.url) {
authentication(userName: project.filesmaven.username, privateKey: project.filesmaven.key)
}
pom {
groupId = project.group
version = project.version
artifactId = project.archivesBaseName
project {
name project.archivesBaseName
packaging 'jar'
description 'ForgeModLoader'
url 'https://github.com/MinecraftForge/FML'
scm {
url 'https://github.com/MinecraftForge/FML'
connection 'scm:git:git://github.com/MinecraftForge/FML.git'
developerConnection 'scm:git:[email protected]:MinecraftForge/FML.git'
}
issueManagement {
system 'github'
url 'https://github.com/MinecraftForge/FML/issues'
}
licenses {
license {
name 'GNU Lesser Public License (LGPL), Version 2.1'
url 'http://www.gnu.org/licenses/lgpl-2.1.txt'
distribution 'repo'
}
}
developers {
developer {
id 'cpw'
name 'cpw'
roles { role 'developer' }
}
developer {
id 'LexManos'
name 'Lex Manos'
roles { role 'developer' }
}
}
}
}
}
} else {
logger.info('Publishing to repo folder')
mavenDeployer {
repository(url: 'file://localhost/' + project.file('repo').getAbsolutePath())
}
}
}
}
+19
View File
@@ -0,0 +1,19 @@
# Artistic Style format configuration
# see http://astyle.sourceforge.net/astyle.html
style=allman
add-brackets
break-closing-brackets
indent-switches
max-instatement-indent=40
pad-oper
pad-header
unpad-paren
break-blocks
delete-empty-lines
File diff suppressed because it is too large. Load diff
+4317
View File
File diff suppressed because it is too large. Load diff
+3543
View File
File diff suppressed because it is too large. Load diff
Loaded 100 of 1005 files, more files were not shown because too many files have changed in this diff. Show more