Commit Graph

497 Commits

Author SHA1 Message Date
mezz 789d9437b2 Fix possible NPE when calling Loader.getIndexedModList #4919 2018-05-09 22:40:14 -07:00
Ben Staddon e1968e73b9 Fix deobfuscator not regenerating super maps (#4856) 2018-05-07 14:19:11 -07:00
LexManos f2fa21e6e2 Move registry snapshot read/write code to Snapshot class. Cleaner code. 2018-04-29 17:58:02 -07:00
LexManos 4df55f3bd3 Only revert to frozen data on server shutdown on client. Should fix race condition exposed by #4904 2018-04-29 17:57:33 -07:00
LexManos 412c2ae53f Potentially fix issue with BungeeCord or other servers resetting the registry mappings on the client while the game is running.
Errors may still occure if the client knows about world data beyond vanilla. Servers should NEVER send world/registry invocations before they have sent registry mappings.
Closes #4901
2018-04-28 04:28:40 -07:00
Ben Staddon fc799564ed Add checks for undefined packet discriminators when sending messages (#4890) 2018-04-22 14:42:05 -07:00
LexManos a99fe41667 Fix overrides typo in saving registry data. Closes #4894 2018-04-21 21:40:40 -07:00
LexManos 34f4381e0c Fix library path and soft fail when repository root is not found. 2018-04-17 19:24:43 -07:00
LexManos 68ce80dad4 Fix libraries not being added to the modlist when using external metadata. Closes #4879 2018-04-15 17:44:01 -07:00
LexManos 32237f57ef Cleanup some issues with the mod extraction to the memory modlist. Closes #4874 #4875 2018-04-14 19:32:45 -07:00
mezz a794f1daff
Improve missing mod dependency error screen (#4762) 2018-04-14 18:17:06 -07:00
Ben Staddon 97a2143fc2 Clean up Reader/Writer handling to use a specified charset (#4872) 2018-04-14 17:00:38 -07:00
Ben Staddon d0566ebadc Suppress firing events at load time if an error has already occurred (#4801) 2018-04-12 17:18:43 -07:00
Erlend Åmdal 0fca21fbc5 Parse contained dependency Timestamp as long instead of int (#4866) 2018-04-11 16:26:53 -07:00
LexManos 9442a48e93 Fix Forge's metadata not being loaded. Closes #4865 2018-04-11 13:10:27 -07:00
LexManos b71caeb813 Fix mods without ModSide meta value. 2018-04-10 19:17:27 -07:00
LexManos 9d0771b3d7
Rewrite dependency extraction to use mod list system (#4841) 2018-04-10 16:01:35 -07:00
Vincent Lee 1d7c04daeb Add a FML outbound target for all players tracking a point or entity in the world. Closes #3677 (#4631) 2018-04-01 01:42:55 -07:00
malte0811 7c098462fe Fix FMLCommonHandler#exitJava printing useless/wrong calling info (#4742) 2018-04-01 00:25:38 -07:00
CreativeMD 12de748af0 Fixed sound engine crash when stopping streaming sounds (#4765) 2018-03-24 22:56:24 -07:00
mezz 881aa67be7 Fix server console logging issues
Closes #4808
2018-03-19 22:44:05 -07:00
mezz ae654edfc2
Fix up logging and log4j configuration (#4802) 2018-03-17 18:41:16 -07:00
ichttt dc459d6b86 Fix serverside startup failure when checking for vanilla acceptance (#4783) 2018-03-01 11:00:48 -08:00
mezz bdb65e9ed7 Improve the "Mod rejections" error message when connecting to a server (#4761) 2018-02-26 22:05:08 -08:00
LexManos e299489493 Fix vanilla crash classes not being preloaded. Closes #4769
Fix classes not being aggregated for mods using the new annotation cache.
2018-02-26 15:36:39 -08:00
Ben Staddon d18c03968e Clean up some GUI code and change magic numbers to GL constants (#4734) 2018-02-11 11:48:02 -08:00
LexManos 816d33de28 Initial implementation of JSON based annotation scanning.
Disabled by default for now, until proven to be fully function.
Enable using -Dfml.enableJsonAnnotations=true
2018-02-07 00:43:32 -08:00
mezz 603903db50 Fix errors in preInit being lost when followed by a crash in fireRegistryEvents or objectHolder 2018-01-22 23:03:44 -08:00
mezz 4ae6e4a295
Improve error message on server when a vanilla client connects (#4691) 2018-01-21 16:07:54 -08:00
Tyler Hancock 01f573dbaa Added a tooltip color event. (#4595) 2018-01-18 12:54:35 -08:00
LexManos 61a16066e5 Fix debug flags for ClassPatchManager not working. Closes #3674 2018-01-18 11:57:30 -08:00
mezz 4b65807bfa Fix FML error logging for mods that crash during FMLLoadCompleteEvent 2018-01-15 21:18:38 -08:00
mezz d0bdb23300
Minor code and documentation cleanup. (#4664) 2018-01-12 23:54:29 -08:00
LexManos 18609f57ac Fix missing call to release() in the event channel handler (#4513)
(reverted from commit cd99957627)
2017-12-18 16:04:34 -08:00
kashike 441ece67bd Delay egg creation to avoid null statistics (#4508) 2017-12-16 18:01:58 -08:00
Ben Staddon cd99957627 Fix missing call to release() in the event channel handler (#4513) 2017-12-16 18:00:35 -08:00
Justin ae790c2345 [macOS] Fix missing text on loading error screens (#4532) 2017-12-16 17:42:17 -08:00
mezz 49596910fc Prevent tooltips from going off the top of the screen. 2017-12-06 21:10:51 -08:00
LexManos 846a70f97f Restore binary compatibility in EntityItemPickupEvent 2017-12-01 13:22:41 -08:00
Draco18s ccc44956fd Fix for the EntityItemPickupEvent having 0 count item when event is fired. (#4549) 2017-11-30 21:46:54 -08:00
Ben Staddon b215d90589 Don't force IPv4 network stack if IPv6 is specifically requested (#4547) 2017-11-26 19:20:01 -08:00
mezz ad16f15365 Clean up old code for detecting BaseMods. Close #4530 (#4540) 2017-11-21 22:27:41 -08:00
Ben Staddon aaf47afff2 Fix errors caused by multi-target messages sent from LAN host (#4536) 2017-11-19 11:47:51 -08:00
Ben Staddon e616990397 Fix entity spawn messages not handling buffer correctly (#4524) 2017-11-15 13:05:17 -08:00
Ben Staddon 9a36814364 Fix network buffer leak with multi-part messages (#4511) 2017-11-12 10:39:41 -08:00
Ben Staddon ad202e2e83 Fix network buffers not being released in some places (#4510) 2017-11-11 15:19:00 -08:00
Justin a59d20fc02 Fix resource loading on some mac systems when SplashProgress is enabled (#4082) 2017-11-09 22:32:01 -08:00
Zaggy1024 9c7538db8d Added a cloud renderer that uploads geometry to the GPU. (#4143) 2017-10-31 11:45:46 -07:00
Ben Staddon 2a546955a4 Clean up more deprecated library functions (#4283) 2017-10-31 11:22:55 -07:00
mezz 00d882ab61 Fix outdated VersionParser javadoc link 2017-10-06 22:16:10 -07:00
mezz f494117453 [1.12] Add support for client & server dependencies for mods (#4403) 2017-10-02 22:13:30 -07:00
kashike dc2014cdf1 Auto-detect registry namespace when using a legacy string id in EntityEntryBuilder fixes #4410 (#4411) 2017-09-21 05:31:53 -07:00
kashike f2b07e8db1 Introduce entity entry builder, useful in the Register<EntityEntry> event replacing needed calls to EntityRegistry. (#4408) 2017-09-20 13:03:03 -07:00
LexManos 50265786b2 MC 1.12.2 update. 2017-09-18 14:35:45 -07:00
Benjamin K 45c2ff5329 Fix CustomModLoadingErrorDisplayScreen not being handled during init or preinit. (#4320) 2017-09-06 14:14:50 -07:00
Daniel Naylor dadc715e7d Insert FML handler before Vanilla connection handshake completes (#4380) 2017-09-06 14:11:21 -07:00
BlayTheNinth da85dcadf5 Allow custom GuiEditArrayEntries without having to recreate the object in several places (#4329) 2017-09-06 14:03:13 -07:00
Bartosz Skrzypczak 8803bf9a29 Fix netty warning spam when sending >1MB packets (#4363) 2017-08-29 17:20:03 -05:00
Bartosz Skrzypczak 161b47ee75 Fix FML handshake crash, fixes #4285 and #3974 (#4304) 2017-08-27 13:58:55 -07:00
Marvin Rösch 43e24c3eb4 Tabulate crash report mod list and add signature information (#4251) 2017-08-18 17:28:58 -05:00
LexManos 28e341002f Add support for server side only recipes, as well as detection of vanilla client recipe book filter to prevent errors. 2017-08-15 05:10:07 -07:00
Bartosz Skrzypczak 68a10b3037 Fix splitting big packets skipping one byte per additional part (#4301) 2017-08-13 15:23:22 -05:00
tterrag ce168d556d Better descriptions on dependency version range error screen (#4284) 2017-08-09 15:10:54 -05:00
LexManos 9ec954a3de Fix IOUtils import error caused by server/client libraries desync. 2017-08-09 12:28:34 -07:00
LexManos c6d0c93a50 Fix odd NPE with list files for empty directories. 2017-08-08 23:27:34 -07:00
LexManos cdc8763fb0 Fixed missing line in logger. 2017-08-08 20:38:11 -07:00
LexManos ee6805397f Cleanup some output and move the Jar-In-Jar extractor to before any coremods/mods are loaded so.
The intention is to rework this entire thing to use maven style storage, IF we can get Mojang to pass in the Libraries folder.
2017-08-08 20:13:05 -07:00
cpw cc30c679e4 Lex doesn't like this.
Revert "Fix up MC version compatibility checking to be a little less verbose."

This reverts commit 1927fd76e2.
2017-08-06 20:30:16 -02:30
cpw 1927fd76e2 Fix up MC version compatibility checking to be a little less verbose.
If people use properly formatted version compatibility strings, or the
default compiled in one, this will work exactly as before, but has
less dependence on specific formats for the mcversion string. So a mod
declaring [1.11, 1.12] will now be 1.12.1 compatible by default, for
example.
2017-08-06 15:42:37 -02:30
LexManos f73c7cb764 1.12.1 Update, Not much modder facing changes, 1.12 mods should load and run fine on this version. 2017-08-03 17:30:43 -07:00
Marvin Rösch 434f95c66e Fix overrides not being read from the server registry snapshot (#4224) 2017-07-26 18:47:55 -05:00
Thanh-Phuong df6b628140 Make Optional.Interface repeatable (#4138) 2017-07-20 16:36:05 -05:00
ichttt cc25a58760 Log a warning if a coremod does not follow best practices (#4146) 2017-07-20 16:32:53 -05:00
LexManos f8c5d7c2b6 Fire recipe registry event after json recipes are loaded. 2017-07-13 14:45:13 -07:00
Ben Staddon 0fde64ac38 Clean up uses of deprecated library functions (#4130)
Avoid catching and rethrowing runtime exceptions
Append error messages to exceptions instead of the log
2017-07-12 21:50:28 -07:00
mezz 75433345ba Improve javadocs for Mod dependencies (#4168) 2017-07-12 21:12:53 -07:00
mezz 11338d0fde Stop "Binary patch set is missing" error log in dev environment 2017-07-11 22:50:12 -07:00
mezz cd4d701b5f Fix game freeze when resizing the window too small on the mods gui (#4148) 2017-07-08 22:55:45 -07:00
LexManos a886dbde49 Quiet down warning for missing translation files. 2017-07-06 21:28:48 -07:00
mezz c1ae2cdbf2 Improve furnace fuel handling (#4083) 2017-07-03 12:54:01 -07:00
LexManos ec318f8504 Squelch spam in EventBus register, Closes #4102 2017-06-28 13:18:44 -07:00
mezz 8581225da8 Use java 8 collection functions 2017-06-28 00:14:10 -07:00
mezz 9675585891 Use lambdas for short anonymous methods 2017-06-27 23:18:09 -07:00
mezz 93025510ae Use multiple catch, try-with-resources, replace system.out and e.printStackTrace 2017-06-27 22:57:10 -07:00
LexManos 10ca404e9e Fix the creative menu search function. Closes #4100 2017-06-27 21:34:03 -07:00
LexManos 7281708df6 Repopulate client SearchTreeManager when registries are refreshed. Closes #4094 2017-06-27 16:28:08 -07:00
BlayTheNinth 5aac07b5b1 Remove incorrect call to .toString() when instantiating custom config array entries. (#4078) 2017-06-27 00:54:49 -05:00
Ben Staddon 9a09ff68aa Remove some deprecated methods and clean up 2017-06-25 22:30:18 -07:00
mezz 7892ca922c Remove the call to client.refreshResources during loading (#4032) 2017-06-25 22:13:58 -07:00
LexManos 460abf1554 Fix ItemStack/Block/BlockSpecial not applying at runtime. 2017-06-25 20:45:07 -07:00
RainWarrior dc043ac79f Cleanup of model system, taking advantage of java 8;
replaced guava Optional and Function with java 8 versions.
2017-06-25 04:08:20 +03:00
LexManos 1c24600bbb Reload client recipe book after loading modded recipes. 2017-06-24 15:34:09 -07:00
mezz 27321efb1f Clean up logging 2017-06-24 01:46:05 -07:00
Ben Staddon 1b5da5d4fe [1.12] Cleanup of files with old licence headers, Add missing LGPL 2.1 licence headers (#4051) 2017-06-24 01:25:23 -07:00
mezz d769d83224 Update MCP to 20170624 2017-06-24 00:56:21 -07:00
Ben Staddon b0dfaa2b81 Remove Java 8 warnings now that Minecraft requires it 2017-06-23 23:31:50 -07:00
LexManos dd42f84a47 Loosen up registry locks until data freeze. 2017-06-23 17:52:59 -07:00
LexManos d032a34aaa Fix conflicts 2017-06-23 16:59:57 -05:00
LexManos f4afb6f56c Implement override tracking and syncing.
Overrides MUST be registered within a tracked event so we know what mod it came from.
This will allow servers/saves to select which mod 'wins' and becomes to active entry.
This should also mean that when connecting to a vanilla server things will revert.
2017-06-23 16:59:57 -05:00
LexManos dee84dc1e4 More work, game loads and runs now.
Moved Registry events to directly AFTER PreInit instead of before.
This allows modders to register handlers for it without @EventBusSubscriber.
It also allows you to register custom things needed before the construction of blocks or items such as Fluids.
TODO: Move Fluids to a real registry.
@ObjectHolder can now be used on private fields.
Reworked FMLModIdMappingEvent to include data for all registries.
Tile Entities are now registrable.
2017-06-23 16:59:57 -05:00
LexManos a26d89c876 First pass of registry rewrite.
Tests do not run yet.
Things of note:
Removed the idea of substitutions, just register multiple items with the same name they will override each other like a normal map.
Decoupled Forge registries from vanilla classes. They now use bouncer classes. MODDERS SHOULD NEVER USE THESE
Introduced more stringent registry locking. As it sits things are only allowed to be registered during the RegistryEvent.Registry phases!
This is to force modders to split up their registrations, and pave the way for calling these functions multiple times during a single MC lifecycle.
ObjectHolder, Missing Mappings, etc... *should* now work for all registry types, nothing should be special cased to Blocks/Items anymore.
Added optional generic dummy factory to registries, to allow registry creators the ability to dummy more then just Blocks.
Re-worked the ItemStack transformer and applied it to ItemBlock and ItemBlockSpecial. Allowing us to cleanup reflective hacks in Block callbacks.
Registry onAdd callback is now only fired on the ACTIVE registry, fixing any issues of temp registries overriding active objects.
2017-06-23 16:59:57 -05:00
diesieben07 0e9820c51c Clean up Logging (#3953)
# Conflicts:
#	patches/minecraft/net/minecraft/client/renderer/texture/Stitcher.java.patch
#	patches/minecraft/net/minecraft/client/renderer/texture/TextureMap.java.patch
#	patches/minecraft/net/minecraft/entity/EntityList.java.patch
#	patches/minecraft/net/minecraft/tileentity/TileEntity.java.patch
#	src/main/java/net/minecraftforge/oredict/OreDictionary.java
2017-06-22 23:18:49 -07:00
Lumien 303578b2f2 [1.12] Fixes Exception when getting modlist for a vanilla client (#4028) 2017-06-19 16:47:34 -07:00
mezz e3777f4559 Add missing Override annotations 2017-06-17 18:24:17 -07:00
mezz c2845967cc Update MCP mappings to 20170617 2017-06-17 18:06:04 -07:00
mezz 3d322ef925 Update mcp mappings to 20170611 2017-06-17 17:13:44 -07:00
Marvin Rösch 50e268bdf5 Make registries persist by default, fixes #3989 (#3998) 2017-06-15 13:00:46 -07:00
LexManos a8659a1613 In-progress Registry system enhancement.
Needs cpw to take a look at enabling removing/overriding in the registry stuff.
But in theory it loads json recipes for mods now.
2017-06-14 10:14:56 -07:00
cpw 3fee319bc0 Try a different way of doing the callback, it removes the derpitude, but at
one point, I thought the way it was was necessary. Is this a race condition?
Dunno, but it's a lot simpler and doesn't rely on a netty hack.
2017-06-10 22:22:16 -04:00
cpw d90637f8b5 Fix the netty bug introduced by netty commit 29fdb160f3
that means we don't get activated until after handlerAdded is complete.
In effect, our handler can't handle anything until handlerAdded has
completed.
2017-06-10 22:22:16 -04:00
LexManos f1cca475ea Initial patch update to 1.12.
Some things to note:
Netty is screwy so currently can't join single player. @cpw
Crafting has been MAJORY reworked. The current GameRegistry functions are nooped, this is IN THE WORKS.
  Just need to move the recipe list to a full class registry, and then re implement the in-code recipe registration.
  Also, it IS advised that modders move to JSON, because ideally we'll see a S->C recipe syncing system in 1.13
  which would allow servers to have custom recipes.
  OreDictionary currently 1/2 works, need to write a better algorithm for replacing ingredients.
  Please be patient
Rendering:
  A lot of functions got a new float parameter, this is similar to partial ticks, needs more research
2017-06-10 22:22:02 -04:00
RlonRyan 8ddbf3b0a8 Changed Event.setCanceled To throw UnsupportedOperationException instead of IllegalArgumetnException when called on a non-cancelable object (#3926) 2017-06-01 14:34:24 -07:00
mezz 1c0b53f3bf Print system details on startup without printing a full crash report (#3909) 2017-05-21 12:30:57 -07:00
mezz 14d8151b02 Reduce memory pressure from new objects during loading screen (#3907) 2017-05-20 14:21:32 -07:00
diesieben07 acdfe97bd6 Add methods to write IForgeRegistryEntry to ByteBuf (#3806) 2017-05-18 13:47:13 -07:00
Max Becker 34463690c5 Changed custom entity selectors from event based to factory based. (#3579) 2017-05-01 18:36:24 -07:00
mezz e4d04afd95 When the window is closed during loading, exit the game quickly (#3858) 2017-05-01 17:14:55 -07:00
mezz 91cc592a3a Remove splash.properties option for Mojang logo (has been disabled) (#3859)
Fix backgound color being applied to the Forge logo
2017-05-01 17:13:43 -07:00
ichttt cbf6cb9744 Fix GuiMultipleModsErrored ignoring scrolling with mouse wheel. (#3861) 2017-05-01 17:12:33 -07:00
Madsthunder 93a4e13837 [1.11.2] Fixed Zombie Villagers not setting and getting professions correctly (#3678) 2017-04-30 21:59:57 -07:00
Justin 460a2189d6 Prevent NPE in ConfigManager and fix config gui being enabled for all mods. Fixes #3856. (#3860) 2017-04-27 19:02:50 -07:00
cpw cec90d7f48 Add in a check to the splash screen. If the Display.update call takes
too long on average (over first 200 frames) we'll use a sleep based
timer to allow mods doing splash screen work some time on the
LWJGL global lock.

(cherry picked from commit 03d7eaa)
2017-04-10 08:33:01 -04:00
LexManos 69b72201ac Cleanup AccessTransformer debug output 2017-04-09 23:13:45 -07:00
mezz 15aee5b18a Skip loading models if there is a fatal mod dependency error (#3772) Close #3768 2017-04-07 16:48:00 -07:00
BlayTheNinth 52409e15cf Fix custom array entry class for config GUI being ignored when adding new entries (#3697) 2017-04-07 16:05:50 -07:00
kashike 9619be4a17 Use thread groups to detect the effective side (#3644) 2017-04-07 15:35:58 -07:00
Justin 4d23ce1314 Fix java 6/7 compatibility in GuiConfig (#3824) 2017-04-04 17:19:13 -07:00
sinus 25497d310b Adding config GUIs to the @Config based configuration System (#3735)
Lots of internal API that modders should not touch. See test mods for example usages.
2017-04-01 14:24:50 -07:00
LexManos 006b8cc8bd Add setter for default key in RegistryBuilder. Closes #3804 2017-03-23 11:23:54 -07:00
mezz 67247fba29 Fix #3733 Splash Screen memory bar background matches screen background (#3775) 2017-03-14 21:03:37 -05:00
ichttt bd4fe54753 Improve exception messages during initialization. 2017-02-23 17:15:11 -08:00
Aaron Hill 219e1d418b Add a null check for the throwable message in NetWorkDispatcher#exceptionCaught (#3688)
(cherry picked from commit 1be1bb59c5c4c7432c515ef07beb6bf7e1f6ef27)
2017-02-23 15:20:32 -08:00
LexManos 7c9b67b574 Fix English injection for some mods on dedicated server. 2017-02-22 11:42:44 -08:00
Choonster TheMage 6a15ab6ead Fix extracted mods crash report file name for Windows (#3701) 2017-02-16 23:01:11 -08:00
James Mitchell 8fbf4cf115 Remove dynamic lambda methods when inside of SideOnly methods
Clean signatures of ReflectionHelper methods.
2017-02-12 16:43:30 -08:00
LexManos 50bf03b82b Cache entity constructors for a small performance optimization 2017-01-17 13:07:22 -08:00
ichttt 3d12ef56b5 Fix #3576 Unnecessary warning about totem being renamed (#3614) 2017-01-11 16:12:08 -08:00
James Mitchell 941c3eff02 Fix #3596 Close jar sources safely in Java 6 (#3597) 2017-01-11 15:18:33 -08:00
James Mitchell c545b8ecd4 Clean up null issues, add more annotations (#3590) 2017-01-11 15:17:56 -08:00
LexManos 966c6263c3 Inital 1.11 update. 2016-12-26 21:34:18 -08:00
James Mitchell a561f4c41c Fix #3561 import io.IOUtils instead of compress.utils.IOUtils (#3562) 2016-12-23 15:23:31 -08:00
James Mitchell 5165dc52bf Update MCP mappings to snapshot_nodoc_20161220 (#3551) 2016-12-21 15:52:30 -08:00
James Mitchell 1f4007e5d8 Properly deobfuscate lambda expressions (#3552) 2016-12-21 11:15:13 -08:00
James Mitchell 08a4f5f314 Add nullable annotations to IGuiHandler (#3550) 2016-12-21 11:14:52 -08:00
James Mitchell e9143859c0 Fix some resources that are never closed, close in a finally block (#3544) 2016-12-21 11:13:27 -08:00
James Mitchell 6a125ae0d4 Fix uses of uppercase "Forge" where it fails Loader.isModLoaded(modID) (#3513) 2016-12-17 13:23:39 -08:00
James Mitchell 20e026e601 [1.11] Add memory display to loading screen (#3447) 2016-12-17 13:16:24 -08:00
Minecrell 22db1965c7 Register Minecraft mod container in FML loader (#3414) 2016-12-17 12:56:10 -08:00
LexManos b203468cde Small memory optimization in Registries. 2016-12-16 13:01:39 -08:00
LexManos 1e6ae7d1f7 Fix modid field name for ProjectInjector. 2016-12-16 13:01:23 -08:00