Compare commits

..
285 Commits
Author SHA1 Message Date
Ben Staddon 23410ad4d4 [1.11] Fix dormant chunk cache allowing entity data to be overwritten (#4672) 2018-01-09 21:03:45 -08:00
Bartek Bok 19577254b2 Fix invalid rendering of single-frame B3D models (#3917) 2017-12-18 21:43:51 -08:00
Bartek Bok ddbbeae4f1 Fix invalid FastTESR quad ordering (#3900) 2017-12-09 18:02:05 -08:00
Ben Staddon c87aa67a8a Recalculate chunk heightmap minimum (MC-117412) (#3888) 2017-11-03 22:51:53 -07:00
Bartek Bok ff1213fa7d Fix stacked entity item rendering (#3886) 2017-10-26 21:46:44 -07:00
Ben Staddon 7d60ce788b Save/restore dormant chunk entity data from NBT (#3940) 2017-10-14 18:34:20 -07:00
mezz 4d02491374 Fix performance regression in FastTESR rendering 2017-10-07 17:10:26 -07:00
PhiPro95 f1ee747082 Clean up Block.getLightValue(IBlockState, IBlockAccess, BlockPos) (#4202) 2017-10-05 20:21:50 -07:00
P3pp3rF1y 949c8c20d4 Change to allow items to interact with villagers (#4194) 2017-10-04 22:23:09 -07:00
Ben Staddon 146e1ecd94 Add a hook to allow world providers to change the lightmap colours. (#3922) 2017-10-04 21:24:36 -07:00
howtonotwin 068578e5ba Add smarter getter for block slipperiness (#3620) 2017-10-03 23:49:21 -07:00
mezz d5963874b6 Fix MC-117075 lag spike when unloading many tile entities 2017-09-10 13:36:32 -07:00
Bartosz Skrzypczak 4b0dbdb19b Fix splitting big packets skipping one byte per additional part (#4302) 2017-08-13 16:29:27 -05:00
mezz 4641bfc701 Allow the server to handle item-block interaction if onItemUse does not return PASS (#3951) 2017-07-30 18:03:53 -07:00
diesieben07 0e5519533f Ignore fortune for anything but seeds in crops (#3959) 2017-07-24 23:13:04 -07:00
mezz 8029851b4e Prevent player from dying infinitely due to zero max health (MC-119183) 2017-07-20 22:00:38 -07:00
mezz 1c7077d4a1 Fix unblockable damage being blocked by armor. (#3933) 2017-07-15 16:31:59 -07:00
E2 8e453de369 RenderLivingEvent now stores partialTick (#3822) 2017-07-03 12:35:29 -07:00
mincrmatt12 35e1737cb3 Add rotation origin variable for animated models (#3875) 2017-07-03 12:31:54 -07:00
LexManos b930704955 Fix BiomeDictionary not collecting correctly. 2017-06-28 23:17:17 -07:00
LexManos 619f83931f Optimize ExtendedBlockState.getClean, cache the return value instead of calculating it. Closes #3936 2017-06-28 23:15:54 -07:00
LexManos 5c8a222cb8 Add @ObjectHolder scanning to vanilla MobEffects, Biomes, Enchantments, SoundEvents, and PotionTypes constants. Closes #4104 2017-06-28 23:02:44 -07:00
LexManos 615f4966ce Version Bump for RB 2017-06-28 21:33:54 -07:00
LexManos 878193152a Fix ItemStackTransformer not applying at runtime. 2017-06-25 13:17:53 -07:00
KingLemming e747a17ec3 Enable support for modded Fishing Rods. (#4011) 2017-06-24 01:26:58 -07:00
diesieben07 96aceffb6f Clean up Logging (#3953) 2017-06-22 22:33:11 -07:00
mezz b43300c388 Fix log4j configuration 2017-06-07 20:43:37 -07:00
Choonster TheMage faf6c22b71 Fix IItemHandler wrappers returned by EntityLivingBase (#3942) 2017-06-05 14:04:10 -07:00
mezz 286777b824 Fix getShareTag replacing data on the server (#3776) Closes #3682 2017-06-04 18:38:16 -07:00
LexManos e67bde9e9e Fix crashed caused by bad mods reflectively breaking the grass drop list. Closes #3943 2017-06-02 16:22:16 -07:00
LexManos c544f06880 Fix shaders not loading from mod domains Closes #3921 2017-06-01 15:47:49 -07:00
Ben Staddon d867bd299f Clean up MapData patch (#3905) 2017-06-01 14:38:12 -07:00
TechnicianLP ca298ef6aa NBTTagList implements Iterable<NBTBase> (#3884) 2017-06-01 14:37:22 -07:00
Vincent Lee df52accf76 Fix canRiderInteract being called on the wrong entity (#3934) 2017-06-01 14:35:05 -07: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
Ben Staddon 3b22b6cb67 Make Teleporter fields accessible to subclasses (#3930) 2017-06-01 14:32:49 -07:00
Erlend Åmdal e2f60c1aaf Deprecate vanilla getExplosionResistance and properly annotate the forge replacement (#3929) 2017-06-01 14:32:37 -07:00
Bartosz Skrzypczak 369008fe1d Make World.isValid and World.isOutsideBuildHeight public (#3919) 2017-06-01 14:32:05 -07:00
mezz e6dcfde214 Clean up formatting of Forge Test mods and disable noisy ones (#3908) 2017-05-29 02:10:40 -07:00
Kitten 4ea73399de Fix broken milk bucket model (#3925) 2017-05-27 09:53:46 -07:00
Mathe172 9c148b56f8 Fix patches of GuiScreen(#3704) and ItemDye(#3736) (#3878) 2017-05-26 14:19:58 -07:00
LexManos 4da5832290 Make hopper update accessible to subclasses. Closes #3849 2017-05-26 14:16:40 -07:00
Flaxbeard e1ddc4315c Update EntityPlayer armor calculations and ISpecialArmor (#3838) 2017-05-26 14:11:52 -07:00
Ben Staddon 2814df89b3 Tweak vertex lighter to avoid causing excess array initialisations (#3771) 2017-05-26 13:57:21 -07:00
Ben Staddon c6f181dcb2 Fixes for PlayerDestroyItemEvent being called with empty itemstacks. (#3728) 2017-05-26 13:54:13 -07:00
Madsthunder 7976ac4a2b [1.11.2] Added support for Village capabilities (#3648) 2017-05-26 13:51:18 -07:00
Luke Gilfoyle 5198b4d690 Fixes BlockLiquidWrapper placing a Static fluid where it should place a Flowing one (#3893) 2017-05-21 22:10:44 -07:00
diesieben07 03e922fa05 Disable frost walker enchantment on anything but vanilla water (#3906) 2017-05-21 13:52:25 -07:00
Matthew Messinger 81d61218b6 Fix head being angled badly when riding mobs. Fixes MC-1207 (#3901) 2017-05-21 12:37:28 -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
tterrag d77033b0d0 Fix normals not being generated for formats without normals (#3896)
Fix normals not being generated for formats without normals
2017-05-15 12:39:54 +04:00
mezz 61d00dd05f Fix MC-117087, prevent calling Class.getSimpleName on TEs unnecessarily (#3873) 2017-05-06 12:19:51 -07:00
ichttt 2df36137c2 Add a configurable delay when unloading dimensions, fixes #3455 (#3679) 2017-05-06 12:19:01 -07:00
Max Becker 34463690c5 Changed custom entity selectors from event based to factory based. (#3579) 2017-05-01 18:36:24 -07:00
ichttt 6ffd94a08e Create ItemFishedEvent, the event is cancelable, but items are not mutable. Use LootTables to control that. (#3705) 2017-05-01 18:10:47 -07:00
Vincent Lee 0b41a0a822 Fix forge pipeline block shifts (#3789) 2017-05-01 17:53:17 -07:00
Max Shen 27a5b60c89 Add pack.mcmeta to examplemod (#3813) 2017-05-01 17:52:36 -07:00
Ben Staddon 003d0c601d Relocate TileEntity#onLoad call to after it's added to the world instead of the chunk so as to have a valid world reference (#3836) 2017-05-01 17:41:37 -07:00
mezz 56ed8fec1e Improvements to FluidUtil (#3839) 2017-05-01 17:25:45 -07:00
diesieben07 b2e3f353df Allow client commands to control whether they can be invoked without prefix. (#3847) 2017-05-01 17:22:53 -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
LexManos af2ca8e250 Fix return value of ItemHandlerHelper.insertItem being incorrect when destination was null. Closes #3840 2017-04-25 12:06:23 -07:00
LexManos c0eea379a4 Fix vanilla inventory wrappers not properly calling markDirty. Closes #3854 and #3810
Also updated IItemHandler javadocs to reflect returning EMPTY instead of NULL.
2017-04-25 11:55:31 -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
LexManos d84ee35245 Fix NumberFormatException being thrown for empty ItemStack deserialization
Thanks @gabizou, 1.11.2 version of #3830
2017-04-09 23:13:13 -07:00
bogger33 3eb7b59cf4 Fix Fluid models rendering with gaps (#3747) Closes #2993 2017-04-07 17:57:00 -07:00
mezz 582f33fc85 Fix mutable blockpos leak MC-114281 (#3742) 2017-04-07 17:36:36 -07:00
Daomephsta f92425cf71 Fix typo in LootEntry.Serialiser causing incorrect serialisation. Closes #2757, Fixes MC-115407 (#3823) 2017-04-07 17:09:56 -07:00
PhiPro95 5f4cd69167 Fix invulnerable items becoming invisible client side MC-53850 (#3807) 2017-04-07 17:03:43 -07:00
John Protsen dbc6baf2f7 Add Item.canDestroyBlocksInCreative() allowing more items to not break blocks in creative (#3805) 2017-04-07 16:59:21 -07:00
diesieben07 646a8977d6 Ignore calls to sendMessage for fake players. Fixes #3796. (#3798) 2017-04-07 16:52:52 -07:00
Kina 2c7c538c73 Fixed HarvestDropsEvent issue by fixed-length lists on getDrops (#3778) 2017-04-07 16:51:21 -07:00
mezz 2234039b96 Add GenerateMinable event for mesa gold (#3774) Closes #3738 2017-04-07 16:48:28 -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
Ben Staddon 901df8345c Add AnimalTameEvent for handling animal taming (#3763) 2017-04-07 16:47:28 -07:00
Ben Staddon f22874d3be Added missing bounds check to ChunkCache.getBiome (#3752) 2017-04-07 16:43:09 -07:00
Vincent Lee 72dd06ca85 Allow result of PlayerInteractEvent to be changed when it's cancelled (#3744) 2017-04-07 16:38:56 -07:00
Choonster TheMage 5ffbbd3b9f Add EnumHand and ItemStack to BonemealEvent (#3736) 2017-04-07 16:31:51 -07:00
Da-Technomancer fd0dabd60c Added a boolean flag for disabling Entity onUpdate (#3731)
The flag is false by default, and if true the Entity will not update. It is saved and loaded from NBT, and is called updateBlocked. Modders are responsible for managing this flag for entities they with to 'freeze' or 'unfreeze'.
2017-04-07 16:28:53 -07:00
Ben Staddon f7f46be8ff Revert block snapshots in reverse order. Fixes #3608. 2017-04-07 16:24:59 -07:00
Paulo "JCranky" Siqueira be2d814155 Add LootTableManager to the LootTableLoadEvent (#3717) 2017-04-07 16:22:49 -07:00
TheMasterGabriel b99aa9bca4 Fix EntityFallingBlock check for ITileEntityProvider (#3711) 2017-04-07 16:18:45 -07:00
Lance 671d462645 Added ClientChatEvent. Closes #1442 (#3704) 2017-04-07 16:09:46 -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
Silly511 f0eb941abc New LivingDestroyBlockEvent for controlling if some entities can destroy blocks (#3628) 2017-04-07 15:34:26 -07:00
LexManos f2425b7486 Fix breaking particles on dedicated server. Closes #3825 2017-04-06 13:16:01 -07:00
LexManos ae96fd08db Fix arrays in map values for config system 2017-04-06 13:15:26 -07:00
LexManos d850ca890f [MC-2518] Fixed missing break sound and particles. Closes #3821 2017-04-05 14:28:28 -07:00
Justin 4d23ce1314 Fix java 6/7 compatibility in GuiConfig (#3824) 2017-04-04 17:19:13 -07:00
Kirill Kuznetsov b6194b0cca [1.11.x] Fix blank tab in creative inventory when additional tabs evenly divisible by 10 (#3817) 2017-04-02 19:50:10 -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 72937c90be Fix vanilla bug where player reputations villages were reset on read.
Deprecated Username based API in favor of UUID based API.
2017-03-31 02:33:39 -07:00
LexManos 006b8cc8bd Add setter for default key in RegistryBuilder. Closes #3804 2017-03-23 11:23:54 -07:00
LexManos c1a38c541a Fix error when reading world info for old saves with missing dimensions. Closes #3786 #3331 2017-03-15 02:51:52 -07:00
mezz 4fbc847736 Detect and log cascading chunk generation issues during terrain population (#3756) 2017-03-14 21:19:47 -05:00
Earthcomputer 43375ded29 Fix duplicate achievements getting added to the achievement list (#3770) (#3779) 2017-03-14 21:04:09 -05:00
mezz 67247fba29 Fix #3733 Splash Screen memory bar background matches screen background (#3775) 2017-03-14 21:03:37 -05:00
Mattia Malonni ef94421dc6 Add additional constructors to EnergyStorage to set values at load time. 2017-03-14 21:00:13 -05:00
diesieben07 55587fca08 Fix parameter-names for WorldProvider.shouldMapSpin (#3767) 2017-03-07 15:29:09 -08:00
Paul Fulham 45e0738f43 Fix MC-112730 TE global renderer duplicate render (#3651)
* Fix TE global renderer duplicate render
2017-02-26 12:21:30 +04:00
Bartek Bok 724ffe1d70 Fix entity write catch block (#3726) 2017-02-24 16:03:19 -08:00
Bartosz Skrzypczak c49ff259b5 Fixed TESR items not rendering correctly before entering world (MC-112292) (#3666)
Fixed crash when rendering text in TESR items before entering world
2017-02-23 18:41:57 -08:00
Joseph C. Sible f4ce57cd21 Fixed 'reset to defaults' button not working on some Forge config fields. 2017-02-23 18:23:50 -08:00
sjx233 2003dee17f Add DifficultyChangeEvent (#3525) 2017-02-23 18:12:27 -08:00
David Quintana a6284e6053 Allow mods to set other default "home dimensions" for respawning. (#3528) 2017-02-23 18:08:58 -08:00
Vincent Lee a15dee61d6 Persist PotionEffect curative items and initialize defaults from Potion (#3573) 2017-02-23 18:04:06 -08:00
Guichaguri 384567c4a5 Added Forge slot methods to creative container (#3581) 2017-02-23 18:01:09 -08:00
Vincent Lee d3e4fde2b2 Restore missing Biome GetWaterColor event. Closes #3164. (#3625) 2017-02-23 17:47:21 -08:00
CoderAtParadise da5b2201fa Fixed Missing Furnace Fuels (#3627) 2017-02-23 17:46:37 -08:00
LexManos 9d71b667b6 Fix @Config.Comment not working on subcategory Objects. Closes #3593 2017-02-23 17:25:09 -08:00
Ben Staddon 64cb9cdafd Prevent concurrent modification of ClassInheritanceMultiMap (#3632) 2017-02-23 17:20:25 -08:00
ichttt bd4fe54753 Improve exception messages during initialization. 2017-02-23 17:15:11 -08:00
Ben Staddon 64c9aae0c4 Fixed ChunkCache.getTileEntity creating tile entities off world thread. 2017-02-23 17:12:37 -08:00
diesieben07 bf154730bd Start firing AttachCapabilitiesEvent<ItemStack> (#3645) 2017-02-23 17:09:02 -08:00
LexManos 5cce054548 Add @Name annotation to config system allowing you to use custom key for value.
Also added category option to root config to allow customization. See examples/docs for information.
2017-02-23 17:06:06 -08:00
LexManos a4a6d5fa6c Fixed Flower Forests not having proper flowers. Closes #3652 2017-02-23 15:51:36 -08:00
LexManos 7cdbe5d518 Fix Poppy to Dandelion ratio 2017-02-23 15:50:30 -08:00
Vincent Lee 1df8d5f8e5 Fix forge:default-item missing case for FIXED transform (#3663) 2017-02-23 15:36:48 -08:00
CreativeMD 3c3fcc0ffd Add implementation for Living Attack event on client-side for players (#3667)
* Fixed unused import
2017-02-23 15:35:44 -08:00
Ben Staddon ab4c4db0d5 Fix bug caused by ItemMinecart patch (#3672) 2017-02-23 15:27:02 -08:00
Vincent Lee e5eb2e795b Make getRGBDurabilityForDisplay use getDurailityForDisplay by default. Closes #3670 (#3673) 2017-02-23 15:25:43 -08:00
Aaron Hill 219e1d418b Add a null check for the throwable message in NetWorkDispatcher#exceptionCaught (#3688)
(cherry picked from commit 1be1bb59c5)
2017-02-23 15:20:32 -08:00
Ben Staddon d3c6130f88 Use Forge setting to determine baby zombie chance. Fixes #3690. 2017-02-23 15:18:59 -08:00
LexManos 403eda184a Properly fix IShearable implementation. Fixes shears taking damage twice, mooshroom particles, and blocks dropping incorrect loot. 2017-02-23 15:15:48 -08:00
LexManos 7c9b67b574 Fix English injection for some mods on dedicated server. 2017-02-22 11:42:44 -08:00
LexManos 6ae39ac027 Fix hoppers being able to insert shulker boxes into shulker boxes. 2017-02-21 14:22:28 -08:00
LexManos 7550f4b05e Override Mojang's new logging config to re-enable our logging to text file.
The new launcher's GUI for logs WILL NOT WORK until they add support on their end.
2017-02-21 14:21:54 -08:00
Kevin G 7aa1e00f31 Fix for bad decompile process on Particle.java that causes onGround flag to not get set properly as well as motionX and motionZ not being set to 0 when their axis has collision happening (#3716) 2017-02-19 21:39:27 -08:00
Vincent Lee a605c64c49 Fix ClientTickEvent Post firing inside another profiler section (#3715) 2017-02-19 21:21:48 -08:00
Vincent Lee 1d6cd35a09 Fix Item.doesSneakBypassUse being applied incorrectly. 2017-02-19 21:19:43 -08:00
RainWarrior b2e3233dc1 Added check for quad builder to always have the particle texture set, and fixed where that wasn't true. Fixes #3653 2017-02-19 22:11:31 +03:00
James Mitchell 5f6bf3b063 Stop rotation of extended pistons, beds, and double chests Fixes #3634
Fix rotation of repeaters and comparators
2017-02-19 10:48:43 -08:00
Florian "Sangar" Nücke caa85b33bf Fixed TileEntity#getRenderBoundingBox not offsetting correctly causing more TEs to render then needed (#3709) 2017-02-19 09:07:12 -08:00
Kevin G 59a3b3cc79 [1.11.2] Make AbstractSkeleton implementable by fixing limited access on getStepSound (#3702) 2017-02-17 09:47:49 -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
diesieben07 6745022d46 Fix spawn-fuzz formula (#3695) 2017-02-12 13:28:27 -08:00
LexManos 4a6b3ef6e3 Fix world spawn fuzz. (reverted from commit 450c3a80c1)
Protip Don't code while groggy.
2017-02-12 12:18:21 -08:00
LexManos 450c3a80c1 Fix world spawn fuzz. 2017-02-12 12:11:40 -08:00
diesieben07 0e9d741163 Fix some cases where world time is not passed through the WorldProvider. (#3685) 2017-02-11 11:22:25 -08:00
Ivorius 3379ee7df2 Fix addTypes not adding in the base types. (#3681) 2017-02-05 09:47:07 -08:00
Ivorius 3e568b864e Replace listSubtypes with listSupertypes to match the intended behavior. (#3564) 2017-02-04 09:29:42 -08:00
mcenderdragon dcc76ccb58 this finaly fixes #2866 (#3656) 2017-01-24 10:30:31 -08:00
Vincent Lee ba875418fd Fix MC-111753 (#3655) 2017-01-24 10:29:43 -08:00
RainWarrior 7598d18a50 Fix default missing model zoom text not being set to false on all places. 2017-01-21 21:11:35 +03:00
RainWarrior 9888214524 Small bugfix in lighting logic. 2017-01-21 21:10:30 +03:00
Fry bbc107de96 Added the variant name to the missing model. (#3328) 2017-01-19 13:57:37 +04:00
James Mitchell 1e7eb6fb09 Fix #3635 MC-103403 fix ingredient count for ingot block recipes (#3640) 2017-01-17 15:40:09 -08:00
LexManos 7da6c2d0e1 New client config option to force all chunk rendering off the main thread.
This may help FPS issues, but may also result in world holes/rendering issues.
Also fix Forge configs not saving properly.
2017-01-17 13:34:03 -08:00
LexManos 50bf03b82b Cache entity constructors for a small performance optimization 2017-01-17 13:07:22 -08:00
cpw 926472b359 Bypass forge chunk cache if it's configuratively disabled
(cherry picked from commit 9fe6385)
2017-01-14 17:46:00 -05:00
Vincent Lee 71efbf8132 Fix category comments not working. Closes #3593 2017-01-13 22:20:43 -06:00
Choonster TheMage d53397111b Fix Biome#getSpawnableList returning an empty list for non-vanilla EnumCreatureTypes (#3611) 2017-01-11 22:19:29 -08:00
Vincent Lee a41288644d Skip first baking in ModelLoader (#3621) 2017-01-11 18:33:13 -08:00
diesieben07 df0f1c4e75 Allow block to specify their type for AI pathfinding (#3546) 2017-01-11 16:43:41 -08:00
Ben Staddon 9835e3705c Fix vanilla bug MC-98707 (#3565) 2017-01-11 16:32:28 -08:00
James Mitchell bc381b92ea Improve performance of inserting into inventory wrappers (#3622) 2017-01-11 16:29:49 -08:00
Justin aed00b5dce Add missing patch to ItemStack isItemStackEqual (#3577) 2017-01-11 16:27:11 -08:00
Modmuss50 04885b3150 Add Iron Nugget to OreDictionary (#3571) 2017-01-11 16:19:08 -08:00
Ben Staddon a718077a2e Fix ContainerRepair patch to prevent NPE (#3553) 2017-01-11 16:14:38 -08:00
Ben Staddon d72888b6ab Fix DungeonHooks method to use correct type (#3587) 2017-01-11 16:13:32 -08:00
liach d672584b8d Removed an unsafe usage of EntityMinecart.getType() (#3592) 2017-01-11 16:13:14 -08:00
ichttt 3d12ef56b5 Fix #3576 Unnecessary warning about totem being renamed (#3614) 2017-01-11 16:12:08 -08:00
Vincent Lee a824214333 Fix milk not working on anything at all (#3574) 2017-01-11 15:19:20 -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
Ben Staddon 43efa3cfc4 Small cleanup for PlayerInteractEvent (#3563) 2017-01-11 15:17:08 -08:00
Ben Staddon 60211e6cd6 Fix and clean up ItemBow.onPlayerStoppedUsing() patch (#3555) 2017-01-11 15:16:37 -08:00
Vincent Lee b020ea06ae Fix IItemHandler's IStorage using nulls (#3580) 2017-01-11 15:16:07 -08:00
Phylogeny 4b627a3672 Fix null check in BrewingRecipeRegistry (#3584) 2017-01-11 15:15:57 -08:00
Ben Staddon c4dea9fc66 Fix a couple more ItemStack null checks (#3586) 2017-01-11 15:15:47 -08:00
James Mitchell 43f3b3ec65 Use travis_wait to extend the timeout on gradlew build (#3610) 2017-01-11 15:15:00 -08:00
RainWarrior da3af92343 Fix super call to ItemOverrideList constructor inside AnimationItemOverrideList, fixes #3264. 2017-01-07 04:27:36 +03:00
RainWarrior cea922432a Added caching for baked vanilla models, fixes #3594. 2017-01-07 02:58:36 +03:00
Vincent Lee d2872ec7a2 Fix horse cap patch being reapplied in the wrong place (#3609) 2017-01-05 22:28:08 -08:00
James Mitchell 9ce6f8e03b Add .travis.yml (#3598)
* Add .travis.yml

* fix --refresh-dependencies

* try java 8

* add build with stracktrace

* Fix running test

* try building with java 6

* try using simplified init.gradle

* Revert "try using simplified init.gradle"

This reverts commit e56041e794.

* Revert "try building with java 6"

This reverts commit 51795385f4.

* Fix running tests

* skip createExe task

* Test with broken debug mod

* Revert "Test with broken debug mod"

This reverts commit 3b26700582.
2017-01-04 14:57:59 -05:00
LexManos 042c8ec739 Fix tests... 2016-12-26 21:52:15 -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 9010f1d7e7 Add hook to allow any block to respond to filtered block updates like the Observer block (#3547) 2016-12-21 11:14:36 -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
Ben Staddon e32cc2a607 [1.11] Fixes for Chunk.getBlockLightOpacity implementation (#3537) 2016-12-21 11:12:48 -08:00
Justin 95e523f943 [1.11] Fix ItemHandlerHelper canStack and ItemStack areTagsEqual methods not checking capabilities (#3500) 2016-12-21 11:11:25 -08:00
James Mitchell b9ebc44790 Make NBSP character display as a space. MC-2595 (#3522)
Add easy getter for the Locale: MinecraftForgeClient.getLocale()
2016-12-17 13:27:45 -08:00
CoderAtParadise bdcfefeb42 Added Oak door to Ore Dictionary Exclusion list to fix able to craft it with any wood type (#3519) 2016-12-17 13:26:30 -08:00
James Mitchell 4908f58b00 Fix setting the world in TileEntity.addTileEntity (#2863) (#3517) 2016-12-17 13:26:07 -08:00
Max Becker 7c72e5168f [1.11] Made WalkNodeProcessor consider burning blocks (#3515) 2016-12-17 13:24:10 -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
Ben Staddon 4530967009 Patch EntityPlayerSP to use location-aware version of isNormalCube (#3494) 2016-12-17 13:23:04 -08:00
James Mitchell 20e026e601 [1.11] Add memory display to loading screen (#3447) 2016-12-17 13:16:24 -08:00
Hasun a997222aca reset repo to upstream and reapplied patches (#3434) 2016-12-17 13:10:17 -08:00
Rock Hymas 8dc4b5f9b5 [1.11] Added EnchantmentLevelSetEvent (#3433) 2016-12-17 13:06:51 -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
LexManos 7fe8c48983 Enable Enforcement of modid formatting. Must be lowercase and <= 64 characters 2016-12-09 14:36:15 -08:00
LexManos babe0c2d53 Bump version for RB. 2016-12-05 20:54:35 -08:00
mezz 8eea766288 [1.11.x] Refine fluid placement utilities (#3509) 2016-12-05 20:17:47 -08:00
LexManos 160427b12c Properly filter out annotations that are for multiple mods in the same mod source.
This prevents disabled mods from getting their proxies injected.
Also prevents mods from getting their proxies injected multiple times.
Effects the @EventBusSubscriber, @Instance, @Metadata, @SidedProxy annotations.
If the target modid is not in the annotation data, and there are multiple mods in the source, it will attempt to find it by matching the annotations's class names.
This is a potentially breaking change. Review your logs for "skipping" messages.
2016-12-05 17:19:15 -08:00
LexManos aee9d8c9b4 Prevent a crash when scheduling block updates for non-existing blocks #3485 2016-12-05 15:12:13 -08:00
LexManos daf21e4dcf Fix issue reading chunks from the network when client and server do not agree on block count. Closes #34925 2016-12-05 13:53:38 -08:00
LexManos b270839e91 Restore missed patch in World.updateComparatorOutputLevel. Closes #3495 2016-12-05 13:07:41 -08:00
LexManos c6bc4ec5a9 Make SlotItemHandler override Slot.getSlotStackLimit. Closes #3497
Make Container.mergeItemStack respect target slot's max size when slot is non-empty. Closes #3498
Fix Shift clicking in Beacons with stacked items when fuel slot is empty.
2016-12-05 12:56:05 -08:00
LexManos c82d3af550 Added gradle.properties to MDK (#3361)
The file sets the default max heap size to 3 GiB so that the decompilation doesn't fail as often.

(cherry picked from commit 49ec3d1b93)
2016-12-05 12:16:30 -08:00
LexManos 3ef3b46ebb Add ItemBlockSpecial#getBlock (#3343)
(cherry picked from commit cf26f4acbe)
2016-12-05 12:15:56 -08:00
LexManos 621d67d36a Add null check and informative error message when client receives an invalid update packet (#3266)
(cherry picked from commit 882e0e3bf2)
2016-12-05 12:13:39 -08:00
LexManos 4b7219c07f Fix for showing config default values twice in tooltip (#2257) (#3338)
(cherry picked from commit be73ec3d5e)
2016-12-05 12:07:44 -08:00
LexManos f9c74cfc77 Added isItemValidForSlot check to hopper extraction (#3444)
(cherry picked from commit 0348760a77)
2016-12-05 12:06:16 -08:00
LexManos c1e832bff0 Fix NPE when rendering missing mod screen with version bound requirements. #3501 2016-12-05 12:03:23 -08:00
LexManos 61fc4a70a3 Make sure to log kick messages in NetworkDispatcher. Closes #3507 2016-12-05 12:01:53 -08:00
Ben Staddon 6921ee54f5 [1.11] Fix null checks in shouldCauseReequipAnimation (#3482) 2016-12-03 10:47:57 -08:00
mezz a913a8a0f9 [1.11] Add biome dictionary types for newer biomes (#3475) 2016-12-03 10:46:36 -08:00
BlayTheNinth 2009b3ec5e [1.11] Add canApplyAtEnchantmentTable to Item (#3463)
Allowing increased control of which enchantments can be put on an item over Vanilla's hard-coded item type checks.
Render enchantment buttons disabled when the item is enchantable but the enchantability requirement is not met on lower levels.
2016-12-03 10:43:29 -08:00
mezz e09e6c0f24 Add a way for modded GuiScreens to cancel mouse and keyboard events (#3438) 2016-12-03 10:32:09 -08:00
diesieben07 1f26b3c3f2 Add missing pooled BlockPos retain in World patch (#3486) 2016-12-03 10:22:48 -08:00
liach 2337b0a6ae Moved TextureStitchEvent.Pre to allow custom sprites for blocks (#3436) 2016-12-01 20:49:23 -08:00
Ben Staddon 14f3120eed Fix sky colour blending not working for render distances >16 (#3476) 2016-12-01 18:49:34 -08:00
LogicTechCorp 0b9988bf45 Allow connectable blocks to choose what they can connect to (#3437) 2016-11-30 17:51:36 -08:00
CoderAtParadise 249c468a75 Changed Armor Material to use an ItemStack aware version (#3469) 2016-11-30 17:08:30 -08:00
Ben Staddon ef1efaffec Fix Redstone Torch memory leak (#3474) 2016-11-30 16:26:38 -08:00
diesieben07 96f88538d5 BiomeDictionary code cleanup (#3466) 2016-11-30 15:48:44 -08:00
TechnicianLP dac8e49f50 Added EquipmentChangeEvent (#3411) 2016-11-30 15:15:14 -08:00
Marvin Rösch 5da0ac73b9 Update assets to new Forge brand (#3464) 2016-11-30 14:56:31 -08:00
LexManos 8d20258f3c First pass at exposing data fixers to modders.
Each mod gets its own version number, mods SHOULD NOT rely on other
mod's fixers, just care about yourself.
Walkers can use IDataFixerData to retrieve their version.
2016-11-28 16:05:41 -08:00
Vincent Lee c17b40790b Add getSlotLimit(slot) to IItemHandler (#3445) 2016-11-28 16:03:47 -08:00
cpw b048c1a4b5 Pass along if the respawn event was the result of the end being conquered or not (end respawning is really FUNKY code and uses death instead of 'change dimension') 2016-11-27 23:58:41 -05:00
kashike 12733656eb Add method to check if an Entity can trample a Block. Fixes #2510 (#2730) 2016-11-27 02:40:23 -08:00
mezz 4b51536592 Provide access to GuiContainer location and dimensions (#3440) 2016-11-27 02:24:32 -08:00
Ben Staddon 86a772ee8c Clean up handling of changes to IVertexConsumer (#3458) 2016-11-27 02:01:26 -08:00
mezz daee86d14d Provide access to ShapedOreRecipe width and height (#3439) 2016-11-27 01:49:13 -08:00
Ben Staddon 059605e352 Quick fix for another ItemStack null check (#3426) 2016-11-27 01:49:06 -08:00
cpw 45aa74454b Fix problem with the server hanging around after forcing the client to exit, leaving behind stale processes. 2016-11-25 02:08:52 -05:00
mezz c22382d12e Fix using the wrong Pair implementation (#3449) 2016-11-24 20:15:32 -08:00
mezz 969a75154f Fix #3432 Hopper and Dropper item moving does not exactly match vanilla (#3442) 2016-11-23 12:45:07 -08:00
mezz 95ecd2a8f4 Fix #3424 ItemCraftedEvent returns air when shift-clicking (#3441) 2016-11-22 22:47:53 -08:00
mezz 2bd8b95a3b Cleanup some null checks and remove deprecated methods in Item and Block (#3429) 2016-11-22 15:20:05 -08:00
LexManos 2823447b6e Fix max CustomPayload size, 1MB not 16MB. 2016-11-22 12:13:30 -08:00
LexManos e03d5915e5 Insert FML packet handler into Vanilla pipelines in case modders send FMLPacket to vanilla. Fixes #3422 2016-11-22 12:13:07 -08:00
LexManos 8719fa0263 Make all tests one side only, so we can test vanilla clients in dev env. 2016-11-22 12:12:13 -08:00
LexManos 8f03658f1f Fix AbstractMethodException in FML Registries. Closes #3427 2016-11-20 16:15:15 -08:00
LexManos b039e2172b Fix ItemStack null check in PlayerInteractionManager 2016-11-18 15:29:55 -08:00
Shadowfacts b4881195b3 Move EntityHorse capability patches to AbstractHorse (#3417)
Fixes #3409
2016-11-18 15:29:18 -08:00
LexManos f12a4b5c1e Fix Item transfers related to Hoppers. 2016-11-18 14:42:22 -08:00
TechnicianLP 668bf47337 Remove Block.addInformation exists in vanilla (#3413) 2016-11-18 13:24:49 -08:00
Shadowfacts 9cf74914e7 Initial annotations/nullability changes (#3392) 2016-11-18 13:24:03 -08:00
iChun 1fa0c0c548 Add GetCollisionBoxesEvent. Allows manipulation of the collision boxes of blocks for entities. MC1.11 edition. (#3405) 2016-11-18 12:24:55 -08:00
LexManos 97ea0c4713 First draft of Entity Registry re-write. 2016-11-17 19:06:42 -08:00
LexManos 5ac6d374ed Make Wither Skulls respect Block.canEntityDestroy. Closes #3404
(cherry picked from commit 6b52023a5c)
2016-11-17 12:49:18 -08:00
Bartosz Skrzypczak 658769ea45 Added EnumHand parameter to Block.getStateForPlacement (#3402) 2016-11-17 12:22:14 -08:00
LexManos 96ef9b564b Fix client side placement issue on blocks with GUIs. Closes #3399 2016-11-17 12:15:28 -08:00
LexManos 85a2a2e661 Fix issues with ZombieVillagers Closes #3398
1.11 doesn't intertwine zombie types anymore so our edits to split them out for custom professions are not needed.
2016-11-17 12:14:23 -08:00
Terrence Ezrol f028ba88f5 Fix Villagers for 1.11 (#3401)
- Add cartographer registry entry
- Fix textures for the nitwit
2016-11-17 10:59:13 -08:00
mezz 150566d9a3 [1.11] Fix nullability issues around ForgeHooks and Capabilities (#3395) 2016-11-17 10:44:31 -08:00
Larsg310 bf090cb4c2 Change OreDictionary over from "null" to the new ItemStack system. (#3400) 2016-11-17 10:43:22 -08:00
LexManos df32442a64 Do not install mod_list.json for optional mods.
Classpath scanning is in so they will still be detected
2016-11-16 21:32:49 -08:00
LexManos 5fd5f78bb9 Include Mercurius in installer. See Forge Forums for more info. 2016-11-16 19:21:48 -08:00
LexManos 6dcd276de1 Restore the ability to register modded TileEntities. 2016-11-16 16:54:34 -08:00
mezz eb6b3ea228 Implement fluid item capabilities without item swapping 2016-11-16 16:17:21 -08:00
mezz 6f1a44a405 Remove deprecated Fluid stuff 2016-11-16 16:17:21 -08:00
Shadowfacts bf8fa5d286 Fix crafting causing crash (#3388) Closes #3387 2016-11-16 16:15:24 -08:00
LexManos 42a7036393 Fix ItemStackHandler's constructor ignoring size. Closes #3386 2016-11-16 16:06:52 -08:00
LexManos 3ea027c3bd Fixed damage bar color. Closes #3389 2016-11-16 16:06:12 -08:00
LexManos 6741967608 Make EntityShulker fire EnderTeleportEvent. Closes #3383
(cherry picked from commit d48985fafa)
2016-11-16 16:05:41 -08:00
LexManos f0d9bf7886 Added event to allow modification of player visibility to mobs/AI (#3382)
(cherry picked from commit 0a5ef64d6e)
2016-11-16 15:10:14 -08:00
LexManos def75dc092 Restore another missing patch in WorldProvider. 2016-11-16 14:27:06 -08:00
LexManos b067435fa3 Disable capabilities for empty ItemStacks. 2016-11-16 14:26:47 -08:00
mezz e498dc7532 [1.11] Fix initCapabilities for ItemStacks (#3379) 2016-11-16 14:15:02 -08:00
LexManos cc48280a8b Apply missed patch to WorldProvider. 2016-11-16 13:57:01 -08:00
LexManos 843d3022f8 Fix build.gradle problems:
Installer missing url.png
UploadArchives erroring on local systems due to missing changelog
Adding branch name improperly.
2016-11-15 23:38:23 -08:00
LexManos f8cba13b5b Fix localizations not loading correctly in legacy resource packs. 2016-11-15 22:59:31 -08:00
LexManos 41916ae39a Fix FurnaceRecipy registration. 2016-11-15 22:34:48 -08:00
LexManos 648067efc2 Fixed test cases for 1.11 changes. 2016-11-15 20:28:12 -08:00
LexManos c459b87ec9 Initial 1.11 release update. 2016-11-15 19:26:10 -08:00
cpw 4e6a774075 Initial 1.11-pre1 update 2016-11-13 17:09:55 -05:00
753 changed files with 20593 additions and 9161 deletions

No files matched your search

+30
View File
@@ -0,0 +1,30 @@
sudo: required
dist: trusty
language: java
jdk: oraclejdk8
env:
- BUILD_NUMBER=9999
before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
- rm -f $HOME/.gradle/caches/minecraft/deobfedDeps/providedDummy.jar
- rm -f $HOME/.gradle/caches/minecraft/deobfedDeps/compileDummy.jar
cache:
directories:
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
- $TRAVIS_BUILD_DIR/build/localCache/Forge/
before_install: chmod +x gradlew
install:
- ./gradlew --refresh-dependencies
- ./gradlew ciWriteBuildNumber
script:
- travis_wait ./gradlew build -x createExe -S
- ./gradlew -p projects/Forge test -S
notifications:
email: false
+9 -3
View File
@@ -26,10 +26,10 @@ apply plugin: "maven"
apply plugin: "net.minecraftforge.gradle.patcher"
apply plugin: "net.minecraftforge.gradle.launch4j"
minecraft.version = "1.10.2"
minecraft.version = "1.11.2"
minecraft {
mappings = 'snapshot_nodoc_20161111'
mappings = 'snapshot_nodoc_20161220'
workspaceDir = "projects"
versionJson = "jsons/${minecraft.version}-dev.json"
buildUserdev = true
@@ -367,13 +367,19 @@ String getVersionFromJava(File file)
if (branch && branch != 'master' && branch != 'HEAD' && branch != minecraft.version && branch != minecraft.version + '.0')
{
if (!(branch.endsWith('.x') && minecraft.version.startsWith(branch.substring(0, branch.length() -1))))
if (!(branch.endsWith('.x') && minecraft.version.startsWith(branch.substring(0, branch.length() -2))))
out += "-$branch"
}
return out;
}
reobfuscate {
extraSrg = [
'MD: net/minecraftforge/fml/common/registry/FMLControlledNamespacedRegistry/getKeys ()Ljava/util/Set; net/minecraftforge/fml/common/registry/FMLControlledNamespacedRegistry/getKeys ()Ljava/util/Set;'
]
}
task resetBuildNumber << {
project.ext.properties.buildNumber = 0;
ciWriteBuildNumber.execute()
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

+2 -16
View File
@@ -8,8 +8,7 @@
"welcome":"Welcome to the simple @project@ installer.",
"minecraft":"@minecraft_version@",
"mirrorList" : "http://files.minecraftforge.net/mirror-brand.list",
"logo":"/big_logo.png",
"modList": "none"
"logo":"/big_logo.png"
},
"versionInfo": {
"id": "@minecraft_version@-@project@@version@",
@@ -136,18 +135,5 @@
"serverreq":true
}
]
},
"optionals": [
{
"name": "Mercurius",
"client": true,
"server": true,
"default": true,
"inject": true,
"desc": "A mod that collects statistics about Minecraft and your system.<br>Useful for Forge to understand how Minecraft/Forge are used.",
"url": "http://www.minecraftforge.net/forum/index.php?topic=43278.0",
"artifact": "net.minecraftforge:MercuriusUpdater:1.10.2",
"maven": "http://files.minecraftforge.net/maven/"
}
]
}
}
+92
View File
@@ -0,0 +1,92 @@
{
"id": "@minecraft_version@-@project@@version@",
"time": "@timestamp@",
"releaseTime": "1960-01-01T00:00:00-0700",
"type": "release",
"inheritsFrom": "1.11",
"minecraftArguments": "--version FML_DEV --tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker",
"libraries": [
{
"name": "net.minecraft:launchwrapper:1.12"
},
{
"name": "jline:jline:2.13",
"children": ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "com.google.code.findbugs:jsr305:1.3.9",
"children": ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.ow2.asm:asm-debug-all:5.0.3",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "com.typesafe.akka:akka-actor_2.11:2.3.3",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "com.typesafe:config:1.2.1",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang:scala-actors-migration_2.11:1.1.0",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang:scala-compiler:2.11.1",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang:scala-library:2.11.1",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang.modules:scala-parser-combinators_2.11:1.0.1",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang:scala-reflect:2.11.1",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang.modules:scala-swing_2.11:1.0.1",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang.modules:scala-xml_2.11:1.0.2",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "lzma:lzma:0.0.1"
},
{
"name": "java3d:vecmath:1.5.2"
},
{
"name": "net.sf.trove4j:trove4j:3.0.3"
}
]
}
+92
View File
@@ -0,0 +1,92 @@
{
"id": "@minecraft_version@-@project@@version@",
"time": "@timestamp@",
"releaseTime": "1960-01-01T00:00:00-0700",
"type": "release",
"inheritsFrom": "1.11-pre1",
"minecraftArguments": "--version FML_DEV --tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker",
"libraries": [
{
"name": "net.minecraft:launchwrapper:1.12"
},
{
"name": "jline:jline:2.13",
"children": ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "com.google.code.findbugs:jsr305:1.3.9",
"children": ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.ow2.asm:asm-debug-all:5.0.3",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "com.typesafe.akka:akka-actor_2.11:2.3.3",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "com.typesafe:config:1.2.1",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang:scala-actors-migration_2.11:1.1.0",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang:scala-compiler:2.11.1",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang:scala-library:2.11.1",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang.modules:scala-parser-combinators_2.11:1.0.1",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang:scala-reflect:2.11.1",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang.modules:scala-swing_2.11:1.0.1",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang.modules:scala-xml_2.11:1.0.2",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "lzma:lzma:0.0.1"
},
{
"name": "java3d:vecmath:1.5.2"
},
{
"name": "net.sf.trove4j:trove4j:3.0.3"
}
]
}
+139
View File
@@ -0,0 +1,139 @@
{
"install": {
"profileName": "@project@",
"target":"@minecraft_version@-@project@@version@",
"path":"@artifact@",
"version":"@project@ @version@",
"filePath":"@universal_jar@",
"welcome":"Welcome to the simple @project@ installer.",
"minecraft":"@minecraft_version@",
"mirrorList" : "http://files.minecraftforge.net/mirror-brand.list",
"logo":"/big_logo.png"
},
"versionInfo": {
"id": "@minecraft_version@-@project@@version@",
"time": "@timestamp@",
"releaseTime": "1960-01-01T00:00:00-0700",
"type": "release",
"minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${assets_root} --assetIndex ${assets_index_name} --uuid ${auth_uuid} --accessToken ${auth_access_token} --userType ${user_type} --tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker --versionType Forge",
"mainClass": "net.minecraft.launchwrapper.Launch",
"inheritsFrom": "1.11-pre1",
"jar": "1.11-pre1",
"libraries": [
{
"name": "@artifact@",
"url": "http://files.minecraftforge.net/maven/"
},
{
"name": "net.minecraft:launchwrapper:1.12",
"serverreq":true
},
{
"name": "org.ow2.asm:asm-all:5.0.3",
"serverreq":true
},
{
"name": "jline:jline:2.13",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "2d9530d0a25daffaffda7c35037b046b627bb171" ],
"serverreq":true,
"clientreq":false
},
{
"name": "com.typesafe.akka:akka-actor_2.11:2.3.3",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "ed62e9fc709ca0f2ff1a3220daa8b70a2870078e", "25a86ccfdb6f6dfe08971f4825d0a01be83a6f2e" ],
"serverreq":true,
"clientreq":true
},
{
"name": "com.typesafe:config:1.2.1",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "f771f71fdae3df231bcd54d5ca2d57f0bf93f467", "7d7bc36df0989d72f2d5d057309675777acc528b" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang:scala-actors-migration_2.11:1.1.0",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "dfa8bc42b181d5b9f1a5dd147f8ae308b893eb6f", "8c9aaeeb68487ca519411a14068e1b4d69739207" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang:scala-compiler:2.11.1",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "56ea2e6c025e0821f28d73ca271218b8dd04926a", "1444992390544ba3780867a13ff696a89d7d1639" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "87213338cd5a153a7712cb574c0ddd2edfee0386", "0b4c1bf8d48993f138d6e10c0c144e50acfff581" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "1f7371605d4ba42aa26d3443440c0083c587b4e9", "1ea655dda4504ae0a367327e2340cd3beaee6c73" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang:scala-library:2.11.1",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "0e11da23da3eabab9f4777b9220e60d44c1aab6a", "1e4df76e835201c6eabd43adca89ab11f225f134" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang:scala-parser-combinators_2.11:1.0.1",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "f05d7345bf5a58924f2837c6c1f4d73a938e1ff0", "a1cbbcbde1dcc614f4253ed1aa0b320bc78d8f1d" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang:scala-reflect:2.11.1",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "6580347e61cc7f8e802941e7fde40fa83b8badeb", "91ce0f0be20f4a536321724b4b3bbc6530ddcd88" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang:scala-swing_2.11:1.0.1",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "b1cdd92bd47b1e1837139c1c53020e86bb9112ae", "d77152691dcf5bbdb00529af37aa7d3d887b3e63" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang:scala-xml_2.11:1.0.2",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "7a80ec00aec122fba7cd4e0d4cdd87ff7e4cb6d0", "62736b01689d56b6d09a0164b7ef9da2b0b9633d" ],
"serverreq":true,
"clientreq":true
},
{
"name": "lzma:lzma:0.0.1",
"serverreq":true
},
{
"name": "net.sf.jopt-simple:jopt-simple:4.6",
"serverreq":true
},
{
"name": "java3d:vecmath:1.5.2",
"clientreq":true,
"serverreq":true
},
{
"name": "net.sf.trove4j:trove4j:3.0.3",
"clientreq":true,
"serverreq":true
}
]
}
}
+563
View File
@@ -0,0 +1,563 @@
{
"assetIndex": {
"id": "1.11",
"sha1": "a3d659674093b94bb39b9ddc7d63ed75c7a340e0",
"size": 157388,
"url": "https://launchermeta.mojang.com/mc/assets/1.11/a3d659674093b94bb39b9ddc7d63ed75c7a340e0/1.11.json",
"totalSize": 123827946
},
"assets": "1.11",
"downloads": {
"client": {
"sha1": "fdc07c099ad33f77c426464754841747a09ee8d7",
"size": 9183464,
"url": "https://launcher.mojang.com/mc/game/1.11-pre1/client/fdc07c099ad33f77c426464754841747a09ee8d7/client.jar"
},
"server": {
"sha1": "7e2884f11e3fb52ed1ad82376e3cada3aa95152e",
"size": 9713399,
"url": "https://launcher.mojang.com/mc/game/1.11-pre1/server/7e2884f11e3fb52ed1ad82376e3cada3aa95152e/server.jar"
}
},
"id": "1.11-pre1",
"libraries": [
{
"name": "com.mojang:netty:1.6",
"downloads": {
"artifact": {
"size": 7877,
"sha1": "4b75825a06139752bd800d9e29c5fd55b8b1b1e4",
"path": "com/mojang/netty/1.6/netty-1.6.jar",
"url": "https://libraries.minecraft.net/com/mojang/netty/1.6/netty-1.6.jar"
}
}
},
{
"name": "oshi-project:oshi-core:1.1",
"downloads": {
"artifact": {
"size": 30973,
"sha1": "9ddf7b048a8d701be231c0f4f95fd986198fd2d8",
"path": "oshi-project/oshi-core/1.1/oshi-core-1.1.jar",
"url": "https://libraries.minecraft.net/oshi-project/oshi-core/1.1/oshi-core-1.1.jar"
}
}
},
{
"name": "net.java.dev.jna:jna:3.4.0",
"downloads": {
"artifact": {
"size": 1008730,
"sha1": "803ff252fedbd395baffd43b37341dc4a150a554",
"path": "net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar",
"url": "https://libraries.minecraft.net/net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar"
}
}
},
{
"name": "net.java.dev.jna:platform:3.4.0",
"downloads": {
"artifact": {
"size": 913436,
"sha1": "e3f70017be8100d3d6923f50b3d2ee17714e9c13",
"path": "net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar",
"url": "https://libraries.minecraft.net/net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar"
}
}
},
{
"name": "com.ibm.icu:icu4j-core-mojang:51.2",
"downloads": {
"artifact": {
"size": 1634692,
"sha1": "63d216a9311cca6be337c1e458e587f99d382b84",
"path": "com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar",
"url": "https://libraries.minecraft.net/com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar"
}
}
},
{
"name": "net.sf.jopt-simple:jopt-simple:4.6",
"downloads": {
"artifact": {
"size": 62477,
"sha1": "306816fb57cf94f108a43c95731b08934dcae15c",
"path": "net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.jar",
"url": "https://libraries.minecraft.net/net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.jar"
}
}
},
{
"name": "com.paulscode:codecjorbis:20101023",
"downloads": {
"artifact": {
"size": 103871,
"sha1": "c73b5636faf089d9f00e8732a829577de25237ee",
"path": "com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar",
"url": "https://libraries.minecraft.net/com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar"
}
}
},
{
"name": "com.paulscode:codecwav:20101023",
"downloads": {
"artifact": {
"size": 5618,
"sha1": "12f031cfe88fef5c1dd36c563c0a3a69bd7261da",
"path": "com/paulscode/codecwav/20101023/codecwav-20101023.jar",
"url": "https://libraries.minecraft.net/com/paulscode/codecwav/20101023/codecwav-20101023.jar"
}
}
},
{
"name": "com.paulscode:libraryjavasound:20101123",
"downloads": {
"artifact": {
"size": 21679,
"sha1": "5c5e304366f75f9eaa2e8cca546a1fb6109348b3",
"path": "com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar",
"url": "https://libraries.minecraft.net/com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar"
}
}
},
{
"name": "com.paulscode:librarylwjglopenal:20100824",
"downloads": {
"artifact": {
"size": 18981,
"sha1": "73e80d0794c39665aec3f62eee88ca91676674ef",
"path": "com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.jar",
"url": "https://libraries.minecraft.net/com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.jar"
}
}
},
{
"name": "com.paulscode:soundsystem:20120107",
"downloads": {
"artifact": {
"size": 65020,
"sha1": "419c05fe9be71f792b2d76cfc9b67f1ed0fec7f6",
"path": "com/paulscode/soundsystem/20120107/soundsystem-20120107.jar",
"url": "https://libraries.minecraft.net/com/paulscode/soundsystem/20120107/soundsystem-20120107.jar"
}
}
},
{
"name": "io.netty:netty-all:4.0.23.Final",
"downloads": {
"artifact": {
"size": 1779991,
"sha1": "0294104aaf1781d6a56a07d561e792c5d0c95f45",
"path": "io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.jar",
"url": "https://libraries.minecraft.net/io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.jar"
}
}
},
{
"name": "com.google.guava:guava:17.0",
"downloads": {
"artifact": {
"size": 2243036,
"sha1": "9c6ef172e8de35fd8d4d8783e4821e57cdef7445",
"path": "com/google/guava/guava/17.0/guava-17.0.jar",
"url": "https://libraries.minecraft.net/com/google/guava/guava/17.0/guava-17.0.jar"
}
}
},
{
"name": "org.apache.commons:commons-lang3:3.3.2",
"downloads": {
"artifact": {
"size": 412739,
"sha1": "90a3822c38ec8c996e84c16a3477ef632cbc87a3",
"path": "org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar",
"url": "https://libraries.minecraft.net/org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar"
}
}
},
{
"name": "commons-io:commons-io:2.4",
"downloads": {
"artifact": {
"size": 185140,
"sha1": "b1b6ea3b7e4aa4f492509a4952029cd8e48019ad",
"path": "commons-io/commons-io/2.4/commons-io-2.4.jar",
"url": "https://libraries.minecraft.net/commons-io/commons-io/2.4/commons-io-2.4.jar"
}
}
},
{
"name": "commons-codec:commons-codec:1.9",
"downloads": {
"artifact": {
"size": 263965,
"sha1": "9ce04e34240f674bc72680f8b843b1457383161a",
"path": "commons-codec/commons-codec/1.9/commons-codec-1.9.jar",
"url": "https://libraries.minecraft.net/commons-codec/commons-codec/1.9/commons-codec-1.9.jar"
}
}
},
{
"name": "net.java.jinput:jinput:2.0.5",
"downloads": {
"artifact": {
"size": 208338,
"sha1": "39c7796b469a600f72380316f6b1f11db6c2c7c4",
"path": "net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar",
"url": "https://libraries.minecraft.net/net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar"
}
}
},
{
"name": "net.java.jutils:jutils:1.0.0",
"downloads": {
"artifact": {
"size": 7508,
"sha1": "e12fe1fda814bd348c1579329c86943d2cd3c6a6",
"path": "net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar",
"url": "https://libraries.minecraft.net/net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar"
}
}
},
{
"name": "com.google.code.gson:gson:2.2.4",
"downloads": {
"artifact": {
"size": 190432,
"sha1": "a60a5e993c98c864010053cb901b7eab25306568",
"path": "com/google/code/gson/gson/2.2.4/gson-2.2.4.jar",
"url": "https://libraries.minecraft.net/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar"
}
}
},
{
"name": "com.mojang:authlib:1.5.24",
"downloads": {
"artifact": {
"size": 64353,
"sha1": "0889ff5477b844800cff734babbf42c1bbda4b10",
"path": "com/mojang/authlib/1.5.24/authlib-1.5.24.jar",
"url": "https://libraries.minecraft.net/com/mojang/authlib/1.5.24/authlib-1.5.24.jar"
}
}
},
{
"name": "com.mojang:realms:1.10.0",
"downloads": {
"artifact": {
"size": 1493992,
"sha1": "e73c98944e2170f895357a703c3322bcd68d1699",
"path": "com/mojang/realms/1.10.0/realms-1.10.0.jar",
"url": "https://libraries.minecraft.net/com/mojang/realms/1.10.0/realms-1.10.0.jar"
}
}
},
{
"name": "org.apache.commons:commons-compress:1.8.1",
"downloads": {
"artifact": {
"size": 365552,
"sha1": "a698750c16740fd5b3871425f4cb3bbaa87f529d",
"path": "org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar",
"url": "https://libraries.minecraft.net/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar"
}
}
},
{
"name": "org.apache.httpcomponents:httpclient:4.3.3",
"downloads": {
"artifact": {
"size": 589512,
"sha1": "18f4247ff4572a074444572cee34647c43e7c9c7",
"path": "org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar",
"url": "https://libraries.minecraft.net/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar"
}
}
},
{
"name": "commons-logging:commons-logging:1.1.3",
"downloads": {
"artifact": {
"size": 62050,
"sha1": "f6f66e966c70a83ffbdb6f17a0919eaf7c8aca7f",
"path": "commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar",
"url": "https://libraries.minecraft.net/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar"
}
}
},
{
"name": "org.apache.httpcomponents:httpcore:4.3.2",
"downloads": {
"artifact": {
"size": 282269,
"sha1": "31fbbff1ddbf98f3aa7377c94d33b0447c646b6e",
"path": "org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar",
"url": "https://libraries.minecraft.net/org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar"
}
}
},
{
"name": "it.unimi.dsi:fastutil:7.0.12_mojang",
"downloads": {
"artifact": {
"size": 522306,
"sha1": "ba787e741efdc425fc5d2ea654b57c15fba27efa",
"path": "it/unimi/dsi/fastutil/7.0.12_mojang/fastutil-7.0.12_mojang.jar",
"url": "https://libraries.minecraft.net/it/unimi/dsi/fastutil/7.0.12_mojang/fastutil-7.0.12_mojang.jar"
}
}
},
{
"name": "org.apache.logging.log4j:log4j-api:2.0-beta9",
"downloads": {
"artifact": {
"size": 108161,
"sha1": "1dd66e68cccd907880229f9e2de1314bd13ff785",
"path": "org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar",
"url": "https://libraries.minecraft.net/org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar"
}
}
},
{
"name": "org.apache.logging.log4j:log4j-core:2.0-beta9",
"downloads": {
"artifact": {
"size": 681134,
"sha1": "678861ba1b2e1fccb594bb0ca03114bb05da9695",
"path": "org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar",
"url": "https://libraries.minecraft.net/org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar"
}
}
},
{
"name": "org.lwjgl.lwjgl:lwjgl:2.9.4-nightly-20150209",
"rules": [
{
"action": "allow"
},
{
"action": "disallow",
"os": {
"name": "osx"
}
}
],
"downloads": {
"artifact": {
"size": 1047168,
"sha1": "697517568c68e78ae0b4544145af031c81082dfe",
"path": "org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.jar"
}
}
},
{
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.4-nightly-20150209",
"rules": [
{
"action": "allow"
},
{
"action": "disallow",
"os": {
"name": "osx"
}
}
],
"downloads": {
"artifact": {
"size": 173887,
"sha1": "d51a7c040a721d13efdfbd34f8b257b2df882ad0",
"path": "org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.jar"
}
}
},
{
"extract": {
"exclude": [
"META-INF/"
]
},
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.4-nightly-20150209",
"natives": {
"linux": "natives-linux",
"osx": "natives-osx",
"windows": "natives-windows"
},
"rules": [
{
"action": "allow"
},
{
"action": "disallow",
"os": {
"name": "osx"
}
}
],
"downloads": {
"classifiers": {
"natives-linux": {
"size": 578680,
"sha1": "931074f46c795d2f7b30ed6395df5715cfd7675b",
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-linux.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-linux.jar"
},
"natives-osx": {
"size": 426822,
"sha1": "bcab850f8f487c3f4c4dbabde778bb82bd1a40ed",
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar"
},
"natives-windows": {
"size": 613748,
"sha1": "b84d5102b9dbfabfeb5e43c7e2828d98a7fc80e0",
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar"
}
},
"artifact": {
"size": 22,
"sha1": "b04f3ee8f5e43fa3b162981b50bb72fe1acabb33",
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209.jar"
}
}
},
{
"name": "org.lwjgl.lwjgl:lwjgl:2.9.2-nightly-20140822",
"rules": [
{
"action": "allow",
"os": {
"name": "osx"
}
}
],
"downloads": {
"artifact": {
"size": 1045632,
"sha1": "7707204c9ffa5d91662de95f0a224e2f721b22af",
"path": "org/lwjgl/lwjgl/lwjgl/2.9.2-nightly-20140822/lwjgl-2.9.2-nightly-20140822.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl/2.9.2-nightly-20140822/lwjgl-2.9.2-nightly-20140822.jar"
}
}
},
{
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.2-nightly-20140822",
"rules": [
{
"action": "allow",
"os": {
"name": "osx"
}
}
],
"downloads": {
"artifact": {
"size": 173887,
"sha1": "f0e612c840a7639c1f77f68d72a28dae2f0c8490",
"path": "org/lwjgl/lwjgl/lwjgl_util/2.9.2-nightly-20140822/lwjgl_util-2.9.2-nightly-20140822.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl_util/2.9.2-nightly-20140822/lwjgl_util-2.9.2-nightly-20140822.jar"
}
}
},
{
"extract": {
"exclude": [
"META-INF/"
]
},
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.2-nightly-20140822",
"natives": {
"linux": "natives-linux",
"osx": "natives-osx",
"windows": "natives-windows"
},
"rules": [
{
"action": "allow",
"os": {
"name": "osx"
}
}
],
"downloads": {
"classifiers": {
"natives-linux": {
"size": 578539,
"sha1": "d898a33b5d0a6ef3fed3a4ead506566dce6720a5",
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-linux.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-linux.jar"
},
"natives-osx": {
"size": 468116,
"sha1": "79f5ce2fea02e77fe47a3c745219167a542121d7",
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-osx.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-osx.jar"
},
"natives-windows": {
"size": 613680,
"sha1": "78b2a55ce4dc29c6b3ec4df8ca165eba05f9b341",
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-windows.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-windows.jar"
}
}
}
},
{
"extract": {
"exclude": [
"META-INF/"
]
},
"name": "net.java.jinput:jinput-platform:2.0.5",
"natives": {
"linux": "natives-linux",
"osx": "natives-osx",
"windows": "natives-windows"
},
"downloads": {
"classifiers": {
"natives-linux": {
"size": 10362,
"sha1": "7ff832a6eb9ab6a767f1ade2b548092d0fa64795",
"path": "net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-linux.jar",
"url": "https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-linux.jar"
},
"natives-osx": {
"size": 12186,
"sha1": "53f9c919f34d2ca9de8c51fc4e1e8282029a9232",
"path": "net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-osx.jar",
"url": "https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-osx.jar"
},
"natives-windows": {
"size": 155179,
"sha1": "385ee093e01f587f30ee1c8a2ee7d408fd732e16",
"path": "net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-windows.jar",
"url": "https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-windows.jar"
}
}
}
}
],
"logging": {
"client": {
"file": {
"id": "client-1.7.xml",
"sha1": "49e2e41bc339698bd8199e0da9398c926e68c95d",
"size": 467,
"url": "https://launchermeta.mojang.com/mc/log_configs/client-1.7.xml/49e2e41bc339698bd8199e0da9398c926e68c95d/client-1.7.xml"
},
"argument": "-Dlog4j.configurationFile=${path}",
"type": "log4j2-xml"
}
},
"mainClass": "net.minecraft.client.main.Main",
"minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${assets_root} --assetIndex ${assets_index_name} --uuid ${auth_uuid} --accessToken ${auth_access_token} --userType ${user_type} --versionType ${version_type}",
"minimumLauncherVersion": 18,
"releaseTime": "2016-11-08T13:42:50+00:00",
"time": "2016-11-08T13:44:29+00:00",
"type": "snapshot"
}
+153
View File
@@ -0,0 +1,153 @@
{
"install": {
"profileName": "@project@",
"target":"@minecraft_version@-@project@@version@",
"path":"@artifact@",
"version":"@project@ @version@",
"filePath":"@universal_jar@",
"welcome":"Welcome to the simple @project@ installer.",
"minecraft":"@minecraft_version@",
"mirrorList" : "http://files.minecraftforge.net/mirror-brand.list",
"logo":"/big_logo.png",
"modList":"none"
},
"versionInfo": {
"id": "@minecraft_version@-@project@@version@",
"time": "@timestamp@",
"releaseTime": "1960-01-01T00:00:00-0700",
"type": "release",
"minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${assets_root} --assetIndex ${assets_index_name} --uuid ${auth_uuid} --accessToken ${auth_access_token} --userType ${user_type} --tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker --versionType Forge",
"mainClass": "net.minecraft.launchwrapper.Launch",
"inheritsFrom": "1.11",
"jar": "1.11",
"libraries": [
{
"name": "@artifact@",
"url": "http://files.minecraftforge.net/maven/"
},
{
"name": "net.minecraft:launchwrapper:1.12",
"serverreq":true
},
{
"name": "org.ow2.asm:asm-all:5.0.3",
"serverreq":true
},
{
"name": "jline:jline:2.13",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "2d9530d0a25daffaffda7c35037b046b627bb171" ],
"serverreq":true,
"clientreq":false
},
{
"name": "com.typesafe.akka:akka-actor_2.11:2.3.3",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "ed62e9fc709ca0f2ff1a3220daa8b70a2870078e", "25a86ccfdb6f6dfe08971f4825d0a01be83a6f2e" ],
"serverreq":true,
"clientreq":true
},
{
"name": "com.typesafe:config:1.2.1",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "f771f71fdae3df231bcd54d5ca2d57f0bf93f467", "7d7bc36df0989d72f2d5d057309675777acc528b" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang:scala-actors-migration_2.11:1.1.0",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "dfa8bc42b181d5b9f1a5dd147f8ae308b893eb6f", "8c9aaeeb68487ca519411a14068e1b4d69739207" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang:scala-compiler:2.11.1",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "56ea2e6c025e0821f28d73ca271218b8dd04926a", "1444992390544ba3780867a13ff696a89d7d1639" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "87213338cd5a153a7712cb574c0ddd2edfee0386", "0b4c1bf8d48993f138d6e10c0c144e50acfff581" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "1f7371605d4ba42aa26d3443440c0083c587b4e9", "1ea655dda4504ae0a367327e2340cd3beaee6c73" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang:scala-library:2.11.1",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "0e11da23da3eabab9f4777b9220e60d44c1aab6a", "1e4df76e835201c6eabd43adca89ab11f225f134" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang:scala-parser-combinators_2.11:1.0.1",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "f05d7345bf5a58924f2837c6c1f4d73a938e1ff0", "a1cbbcbde1dcc614f4253ed1aa0b320bc78d8f1d" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang:scala-reflect:2.11.1",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "6580347e61cc7f8e802941e7fde40fa83b8badeb", "91ce0f0be20f4a536321724b4b3bbc6530ddcd88" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang:scala-swing_2.11:1.0.1",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "b1cdd92bd47b1e1837139c1c53020e86bb9112ae", "d77152691dcf5bbdb00529af37aa7d3d887b3e63" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang:scala-xml_2.11:1.0.2",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "7a80ec00aec122fba7cd4e0d4cdd87ff7e4cb6d0", "62736b01689d56b6d09a0164b7ef9da2b0b9633d" ],
"serverreq":true,
"clientreq":true
},
{
"name": "lzma:lzma:0.0.1",
"serverreq":true
},
{
"name": "net.sf.jopt-simple:jopt-simple:4.6",
"serverreq":true
},
{
"name": "java3d:vecmath:1.5.2",
"clientreq":true,
"serverreq":true
},
{
"name": "net.sf.trove4j:trove4j:3.0.3",
"clientreq":true,
"serverreq":true
}
]
},
"optionals": [
{
"name": "Mercurius",
"client": true,
"server": true,
"default": true,
"inject": true,
"desc": "A mod that collects statistics about Minecraft and your system.<br>Useful for Forge to understand how Minecraft/Forge are used.",
"url": "http://www.minecraftforge.net/forum/index.php?topic=43278.0",
"artifact": "net.minecraftforge:MercuriusUpdater:1.11",
"maven": "http://files.minecraftforge.net/maven/"
}
]
}
+92
View File
@@ -0,0 +1,92 @@
{
"id": "@minecraft_version@-@project@@version@",
"time": "@timestamp@",
"releaseTime": "1960-01-01T00:00:00-0700",
"type": "release",
"inheritsFrom": "1.11.2",
"minecraftArguments": "--version FML_DEV --tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker",
"libraries": [
{
"name": "net.minecraft:launchwrapper:1.12"
},
{
"name": "jline:jline:2.13",
"children": ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "com.google.code.findbugs:jsr305:1.3.9",
"children": ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.ow2.asm:asm-debug-all:5.0.3",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "com.typesafe.akka:akka-actor_2.11:2.3.3",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "com.typesafe:config:1.2.1",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang:scala-actors-migration_2.11:1.1.0",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang:scala-compiler:2.11.1",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang:scala-library:2.11.1",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang.modules:scala-parser-combinators_2.11:1.0.1",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang:scala-reflect:2.11.1",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang.modules:scala-swing_2.11:1.0.1",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "org.scala-lang.modules:scala-xml_2.11:1.0.2",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "lzma:lzma:0.0.1"
},
{
"name": "java3d:vecmath:1.5.2"
},
{
"name": "net.sf.trove4j:trove4j:3.0.3"
}
]
}
+154
View File
@@ -0,0 +1,154 @@
{
"install": {
"profileName": "@project@",
"target":"@minecraft_version@-@project@@version@",
"path":"@artifact@",
"version":"@project@ @version@",
"filePath":"@universal_jar@",
"welcome":"Welcome to the simple @project@ installer.",
"minecraft":"@minecraft_version@",
"mirrorList" : "http://files.minecraftforge.net/mirror-brand.list",
"logo":"/big_logo.png",
"modList":"none"
},
"versionInfo": {
"id": "@minecraft_version@-@project@@version@",
"time": "@timestamp@",
"releaseTime": "1960-01-01T00:00:00-0700",
"type": "release",
"minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${assets_root} --assetIndex ${assets_index_name} --uuid ${auth_uuid} --accessToken ${auth_access_token} --userType ${user_type} --tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker --versionType Forge",
"mainClass": "net.minecraft.launchwrapper.Launch",
"inheritsFrom": "1.11.2",
"jar": "1.11.2",
"logging": {},
"libraries": [
{
"name": "@artifact@",
"url": "http://files.minecraftforge.net/maven/"
},
{
"name": "net.minecraft:launchwrapper:1.12",
"serverreq":true
},
{
"name": "org.ow2.asm:asm-all:5.0.3",
"serverreq":true
},
{
"name": "jline:jline:2.13",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "2d9530d0a25daffaffda7c35037b046b627bb171" ],
"serverreq":true,
"clientreq":false
},
{
"name": "com.typesafe.akka:akka-actor_2.11:2.3.3",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "ed62e9fc709ca0f2ff1a3220daa8b70a2870078e", "25a86ccfdb6f6dfe08971f4825d0a01be83a6f2e" ],
"serverreq":true,
"clientreq":true
},
{
"name": "com.typesafe:config:1.2.1",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "f771f71fdae3df231bcd54d5ca2d57f0bf93f467", "7d7bc36df0989d72f2d5d057309675777acc528b" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang:scala-actors-migration_2.11:1.1.0",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "dfa8bc42b181d5b9f1a5dd147f8ae308b893eb6f", "8c9aaeeb68487ca519411a14068e1b4d69739207" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang:scala-compiler:2.11.1",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "56ea2e6c025e0821f28d73ca271218b8dd04926a", "1444992390544ba3780867a13ff696a89d7d1639" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "87213338cd5a153a7712cb574c0ddd2edfee0386", "0b4c1bf8d48993f138d6e10c0c144e50acfff581" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "1f7371605d4ba42aa26d3443440c0083c587b4e9", "1ea655dda4504ae0a367327e2340cd3beaee6c73" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang:scala-library:2.11.1",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "0e11da23da3eabab9f4777b9220e60d44c1aab6a", "1e4df76e835201c6eabd43adca89ab11f225f134" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang:scala-parser-combinators_2.11:1.0.1",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "f05d7345bf5a58924f2837c6c1f4d73a938e1ff0", "a1cbbcbde1dcc614f4253ed1aa0b320bc78d8f1d" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang:scala-reflect:2.11.1",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "6580347e61cc7f8e802941e7fde40fa83b8badeb", "91ce0f0be20f4a536321724b4b3bbc6530ddcd88" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang:scala-swing_2.11:1.0.1",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "b1cdd92bd47b1e1837139c1c53020e86bb9112ae", "d77152691dcf5bbdb00529af37aa7d3d887b3e63" ],
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang:scala-xml_2.11:1.0.2",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "7a80ec00aec122fba7cd4e0d4cdd87ff7e4cb6d0", "62736b01689d56b6d09a0164b7ef9da2b0b9633d" ],
"serverreq":true,
"clientreq":true
},
{
"name": "lzma:lzma:0.0.1",
"serverreq":true
},
{
"name": "net.sf.jopt-simple:jopt-simple:4.6",
"serverreq":true
},
{
"name": "java3d:vecmath:1.5.2",
"clientreq":true,
"serverreq":true
},
{
"name": "net.sf.trove4j:trove4j:3.0.3",
"clientreq":true,
"serverreq":true
}
]
},
"optionals": [
{
"name": "Mercurius",
"client": true,
"server": true,
"default": true,
"inject": true,
"desc": "A mod that collects statistics about Minecraft and your system.<br>Useful for Forge to understand how Minecraft/Forge are used.",
"url": "http://www.minecraftforge.net/forum/index.php?topic=43278.0",
"artifact": "net.minecraftforge:MercuriusUpdater:1.11.2",
"maven": "http://files.minecraftforge.net/maven/"
}
]
}
+563
View File
@@ -0,0 +1,563 @@
{
"assetIndex": {
"id": "1.11",
"sha1": "ea7f56173691250e9805db5e3dda2d65b951ede3",
"size": 157395,
"url": "https://launchermeta.mojang.com/mc/assets/1.11/ea7f56173691250e9805db5e3dda2d65b951ede3/1.11.json",
"totalSize": 124627552
},
"assets": "1.11",
"downloads": {
"client": {
"sha1": "db5aa600f0b0bf508aaf579509b345c4e34087be",
"size": 9198097,
"url": "https://launcher.mojang.com/mc/game/1.11.2/client/db5aa600f0b0bf508aaf579509b345c4e34087be/client.jar"
},
"server": {
"sha1": "f00c294a1576e03fddcac777c3cf4c7d404c4ba4",
"size": 9720835,
"url": "https://launcher.mojang.com/mc/game/1.11.2/server/f00c294a1576e03fddcac777c3cf4c7d404c4ba4/server.jar"
}
},
"id": "1.11.2",
"libraries": [
{
"name": "com.mojang:netty:1.6",
"downloads": {
"artifact": {
"size": 7877,
"sha1": "4b75825a06139752bd800d9e29c5fd55b8b1b1e4",
"path": "com/mojang/netty/1.6/netty-1.6.jar",
"url": "https://libraries.minecraft.net/com/mojang/netty/1.6/netty-1.6.jar"
}
}
},
{
"name": "oshi-project:oshi-core:1.1",
"downloads": {
"artifact": {
"size": 30973,
"sha1": "9ddf7b048a8d701be231c0f4f95fd986198fd2d8",
"path": "oshi-project/oshi-core/1.1/oshi-core-1.1.jar",
"url": "https://libraries.minecraft.net/oshi-project/oshi-core/1.1/oshi-core-1.1.jar"
}
}
},
{
"name": "net.java.dev.jna:jna:3.4.0",
"downloads": {
"artifact": {
"size": 1008730,
"sha1": "803ff252fedbd395baffd43b37341dc4a150a554",
"path": "net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar",
"url": "https://libraries.minecraft.net/net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar"
}
}
},
{
"name": "net.java.dev.jna:platform:3.4.0",
"downloads": {
"artifact": {
"size": 913436,
"sha1": "e3f70017be8100d3d6923f50b3d2ee17714e9c13",
"path": "net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar",
"url": "https://libraries.minecraft.net/net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar"
}
}
},
{
"name": "com.ibm.icu:icu4j-core-mojang:51.2",
"downloads": {
"artifact": {
"size": 1634692,
"sha1": "63d216a9311cca6be337c1e458e587f99d382b84",
"path": "com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar",
"url": "https://libraries.minecraft.net/com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar"
}
}
},
{
"name": "net.sf.jopt-simple:jopt-simple:4.6",
"downloads": {
"artifact": {
"size": 62477,
"sha1": "306816fb57cf94f108a43c95731b08934dcae15c",
"path": "net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.jar",
"url": "https://libraries.minecraft.net/net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.jar"
}
}
},
{
"name": "com.paulscode:codecjorbis:20101023",
"downloads": {
"artifact": {
"size": 103871,
"sha1": "c73b5636faf089d9f00e8732a829577de25237ee",
"path": "com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar",
"url": "https://libraries.minecraft.net/com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar"
}
}
},
{
"name": "com.paulscode:codecwav:20101023",
"downloads": {
"artifact": {
"size": 5618,
"sha1": "12f031cfe88fef5c1dd36c563c0a3a69bd7261da",
"path": "com/paulscode/codecwav/20101023/codecwav-20101023.jar",
"url": "https://libraries.minecraft.net/com/paulscode/codecwav/20101023/codecwav-20101023.jar"
}
}
},
{
"name": "com.paulscode:libraryjavasound:20101123",
"downloads": {
"artifact": {
"size": 21679,
"sha1": "5c5e304366f75f9eaa2e8cca546a1fb6109348b3",
"path": "com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar",
"url": "https://libraries.minecraft.net/com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar"
}
}
},
{
"name": "com.paulscode:librarylwjglopenal:20100824",
"downloads": {
"artifact": {
"size": 18981,
"sha1": "73e80d0794c39665aec3f62eee88ca91676674ef",
"path": "com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.jar",
"url": "https://libraries.minecraft.net/com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.jar"
}
}
},
{
"name": "com.paulscode:soundsystem:20120107",
"downloads": {
"artifact": {
"size": 65020,
"sha1": "419c05fe9be71f792b2d76cfc9b67f1ed0fec7f6",
"path": "com/paulscode/soundsystem/20120107/soundsystem-20120107.jar",
"url": "https://libraries.minecraft.net/com/paulscode/soundsystem/20120107/soundsystem-20120107.jar"
}
}
},
{
"name": "io.netty:netty-all:4.0.23.Final",
"downloads": {
"artifact": {
"size": 1779991,
"sha1": "0294104aaf1781d6a56a07d561e792c5d0c95f45",
"path": "io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.jar",
"url": "https://libraries.minecraft.net/io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.jar"
}
}
},
{
"name": "com.google.guava:guava:17.0",
"downloads": {
"artifact": {
"size": 2243036,
"sha1": "9c6ef172e8de35fd8d4d8783e4821e57cdef7445",
"path": "com/google/guava/guava/17.0/guava-17.0.jar",
"url": "https://libraries.minecraft.net/com/google/guava/guava/17.0/guava-17.0.jar"
}
}
},
{
"name": "org.apache.commons:commons-lang3:3.3.2",
"downloads": {
"artifact": {
"size": 412739,
"sha1": "90a3822c38ec8c996e84c16a3477ef632cbc87a3",
"path": "org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar",
"url": "https://libraries.minecraft.net/org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar"
}
}
},
{
"name": "commons-io:commons-io:2.4",
"downloads": {
"artifact": {
"size": 185140,
"sha1": "b1b6ea3b7e4aa4f492509a4952029cd8e48019ad",
"path": "commons-io/commons-io/2.4/commons-io-2.4.jar",
"url": "https://libraries.minecraft.net/commons-io/commons-io/2.4/commons-io-2.4.jar"
}
}
},
{
"name": "commons-codec:commons-codec:1.9",
"downloads": {
"artifact": {
"size": 263965,
"sha1": "9ce04e34240f674bc72680f8b843b1457383161a",
"path": "commons-codec/commons-codec/1.9/commons-codec-1.9.jar",
"url": "https://libraries.minecraft.net/commons-codec/commons-codec/1.9/commons-codec-1.9.jar"
}
}
},
{
"name": "net.java.jinput:jinput:2.0.5",
"downloads": {
"artifact": {
"size": 208338,
"sha1": "39c7796b469a600f72380316f6b1f11db6c2c7c4",
"path": "net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar",
"url": "https://libraries.minecraft.net/net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar"
}
}
},
{
"name": "net.java.jutils:jutils:1.0.0",
"downloads": {
"artifact": {
"size": 7508,
"sha1": "e12fe1fda814bd348c1579329c86943d2cd3c6a6",
"path": "net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar",
"url": "https://libraries.minecraft.net/net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar"
}
}
},
{
"name": "com.google.code.gson:gson:2.2.4",
"downloads": {
"artifact": {
"size": 190432,
"sha1": "a60a5e993c98c864010053cb901b7eab25306568",
"path": "com/google/code/gson/gson/2.2.4/gson-2.2.4.jar",
"url": "https://libraries.minecraft.net/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar"
}
}
},
{
"name": "com.mojang:authlib:1.5.24",
"downloads": {
"artifact": {
"size": 64353,
"sha1": "0889ff5477b844800cff734babbf42c1bbda4b10",
"path": "com/mojang/authlib/1.5.24/authlib-1.5.24.jar",
"url": "https://libraries.minecraft.net/com/mojang/authlib/1.5.24/authlib-1.5.24.jar"
}
}
},
{
"name": "com.mojang:realms:1.10.16",
"downloads": {
"artifact": {
"size": 3257394,
"sha1": "b4948eb06ff238e45044f47aa69c2c977ce69dcb",
"path": "com/mojang/realms/1.10.16/realms-1.10.16.jar",
"url": "https://libraries.minecraft.net/com/mojang/realms/1.10.16/realms-1.10.16.jar"
}
}
},
{
"name": "org.apache.commons:commons-compress:1.8.1",
"downloads": {
"artifact": {
"size": 365552,
"sha1": "a698750c16740fd5b3871425f4cb3bbaa87f529d",
"path": "org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar",
"url": "https://libraries.minecraft.net/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar"
}
}
},
{
"name": "org.apache.httpcomponents:httpclient:4.3.3",
"downloads": {
"artifact": {
"size": 589512,
"sha1": "18f4247ff4572a074444572cee34647c43e7c9c7",
"path": "org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar",
"url": "https://libraries.minecraft.net/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar"
}
}
},
{
"name": "commons-logging:commons-logging:1.1.3",
"downloads": {
"artifact": {
"size": 62050,
"sha1": "f6f66e966c70a83ffbdb6f17a0919eaf7c8aca7f",
"path": "commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar",
"url": "https://libraries.minecraft.net/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar"
}
}
},
{
"name": "org.apache.httpcomponents:httpcore:4.3.2",
"downloads": {
"artifact": {
"size": 282269,
"sha1": "31fbbff1ddbf98f3aa7377c94d33b0447c646b6e",
"path": "org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar",
"url": "https://libraries.minecraft.net/org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar"
}
}
},
{
"name": "it.unimi.dsi:fastutil:7.0.12_mojang",
"downloads": {
"artifact": {
"size": 522306,
"sha1": "ba787e741efdc425fc5d2ea654b57c15fba27efa",
"path": "it/unimi/dsi/fastutil/7.0.12_mojang/fastutil-7.0.12_mojang.jar",
"url": "https://libraries.minecraft.net/it/unimi/dsi/fastutil/7.0.12_mojang/fastutil-7.0.12_mojang.jar"
}
}
},
{
"name": "org.apache.logging.log4j:log4j-api:2.0-beta9",
"downloads": {
"artifact": {
"size": 108161,
"sha1": "1dd66e68cccd907880229f9e2de1314bd13ff785",
"path": "org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar",
"url": "https://libraries.minecraft.net/org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar"
}
}
},
{
"name": "org.apache.logging.log4j:log4j-core:2.0-beta9",
"downloads": {
"artifact": {
"size": 681134,
"sha1": "678861ba1b2e1fccb594bb0ca03114bb05da9695",
"path": "org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar",
"url": "https://libraries.minecraft.net/org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar"
}
}
},
{
"name": "org.lwjgl.lwjgl:lwjgl:2.9.4-nightly-20150209",
"rules": [
{
"action": "allow"
},
{
"action": "disallow",
"os": {
"name": "osx"
}
}
],
"downloads": {
"artifact": {
"size": 1047168,
"sha1": "697517568c68e78ae0b4544145af031c81082dfe",
"path": "org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.jar"
}
}
},
{
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.4-nightly-20150209",
"rules": [
{
"action": "allow"
},
{
"action": "disallow",
"os": {
"name": "osx"
}
}
],
"downloads": {
"artifact": {
"size": 173887,
"sha1": "d51a7c040a721d13efdfbd34f8b257b2df882ad0",
"path": "org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.jar"
}
}
},
{
"extract": {
"exclude": [
"META-INF/"
]
},
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.4-nightly-20150209",
"natives": {
"linux": "natives-linux",
"osx": "natives-osx",
"windows": "natives-windows"
},
"rules": [
{
"action": "allow"
},
{
"action": "disallow",
"os": {
"name": "osx"
}
}
],
"downloads": {
"classifiers": {
"natives-linux": {
"size": 578680,
"sha1": "931074f46c795d2f7b30ed6395df5715cfd7675b",
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-linux.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-linux.jar"
},
"natives-osx": {
"size": 426822,
"sha1": "bcab850f8f487c3f4c4dbabde778bb82bd1a40ed",
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar"
},
"natives-windows": {
"size": 613748,
"sha1": "b84d5102b9dbfabfeb5e43c7e2828d98a7fc80e0",
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar"
}
},
"artifact": {
"size": 22,
"sha1": "b04f3ee8f5e43fa3b162981b50bb72fe1acabb33",
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209.jar"
}
}
},
{
"name": "org.lwjgl.lwjgl:lwjgl:2.9.2-nightly-20140822",
"rules": [
{
"action": "allow",
"os": {
"name": "osx"
}
}
],
"downloads": {
"artifact": {
"size": 1045632,
"sha1": "7707204c9ffa5d91662de95f0a224e2f721b22af",
"path": "org/lwjgl/lwjgl/lwjgl/2.9.2-nightly-20140822/lwjgl-2.9.2-nightly-20140822.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl/2.9.2-nightly-20140822/lwjgl-2.9.2-nightly-20140822.jar"
}
}
},
{
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.2-nightly-20140822",
"rules": [
{
"action": "allow",
"os": {
"name": "osx"
}
}
],
"downloads": {
"artifact": {
"size": 173887,
"sha1": "f0e612c840a7639c1f77f68d72a28dae2f0c8490",
"path": "org/lwjgl/lwjgl/lwjgl_util/2.9.2-nightly-20140822/lwjgl_util-2.9.2-nightly-20140822.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl_util/2.9.2-nightly-20140822/lwjgl_util-2.9.2-nightly-20140822.jar"
}
}
},
{
"extract": {
"exclude": [
"META-INF/"
]
},
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.2-nightly-20140822",
"natives": {
"linux": "natives-linux",
"osx": "natives-osx",
"windows": "natives-windows"
},
"rules": [
{
"action": "allow",
"os": {
"name": "osx"
}
}
],
"downloads": {
"classifiers": {
"natives-linux": {
"size": 578539,
"sha1": "d898a33b5d0a6ef3fed3a4ead506566dce6720a5",
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-linux.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-linux.jar"
},
"natives-osx": {
"size": 468116,
"sha1": "79f5ce2fea02e77fe47a3c745219167a542121d7",
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-osx.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-osx.jar"
},
"natives-windows": {
"size": 613680,
"sha1": "78b2a55ce4dc29c6b3ec4df8ca165eba05f9b341",
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-windows.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-windows.jar"
}
}
}
},
{
"extract": {
"exclude": [
"META-INF/"
]
},
"name": "net.java.jinput:jinput-platform:2.0.5",
"natives": {
"linux": "natives-linux",
"osx": "natives-osx",
"windows": "natives-windows"
},
"downloads": {
"classifiers": {
"natives-linux": {
"size": 10362,
"sha1": "7ff832a6eb9ab6a767f1ade2b548092d0fa64795",
"path": "net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-linux.jar",
"url": "https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-linux.jar"
},
"natives-osx": {
"size": 12186,
"sha1": "53f9c919f34d2ca9de8c51fc4e1e8282029a9232",
"path": "net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-osx.jar",
"url": "https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-osx.jar"
},
"natives-windows": {
"size": 155179,
"sha1": "385ee093e01f587f30ee1c8a2ee7d408fd732e16",
"path": "net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-windows.jar",
"url": "https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-windows.jar"
}
}
}
}
],
"logging": {
"client": {
"file": {
"id": "client-1.7.xml",
"sha1": "6605d632a2399010c0085d3e4da58974d62ccdfe",
"size": 871,
"url": "https://launchermeta.mojang.com/mc/log_configs/client-1.7.xml/6605d632a2399010c0085d3e4da58974d62ccdfe/client-1.7.xml"
},
"argument": "-Dlog4j.configurationFile=${path}",
"type": "log4j2-xml"
}
},
"mainClass": "net.minecraft.client.main.Main",
"minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${assets_root} --assetIndex ${assets_index_name} --uuid ${auth_uuid} --accessToken ${auth_access_token} --userType ${user_type} --versionType ${version_type}",
"minimumLauncherVersion": 18,
"releaseTime": "2016-12-21T09:29:12+00:00",
"time": "2017-04-07T11:44:29+00:00",
"type": "release"
}
+563
View File
@@ -0,0 +1,563 @@
{
"assetIndex": {
"id": "1.11",
"sha1": "e02b8fba4390e173057895c56ecc91e3ce3bbd40",
"size": 157392,
"url": "https://launchermeta.mojang.com/mc/assets/1.11/e02b8fba4390e173057895c56ecc91e3ce3bbd40/1.11.json",
"totalSize": 124275381
},
"assets": "1.11",
"downloads": {
"client": {
"sha1": "780e46b3a96091a7f42c028c615af45974629072",
"size": 9183701,
"url": "https://launcher.mojang.com/mc/game/1.11/client/780e46b3a96091a7f42c028c615af45974629072/client.jar"
},
"server": {
"sha1": "48820c84cb1ed502cb5b2fe23b8153d5e4fa61c0",
"size": 9713666,
"url": "https://launcher.mojang.com/mc/game/1.11/server/48820c84cb1ed502cb5b2fe23b8153d5e4fa61c0/server.jar"
}
},
"id": "1.11",
"libraries": [
{
"name": "com.mojang:netty:1.6",
"downloads": {
"artifact": {
"size": 7877,
"sha1": "4b75825a06139752bd800d9e29c5fd55b8b1b1e4",
"path": "com/mojang/netty/1.6/netty-1.6.jar",
"url": "https://libraries.minecraft.net/com/mojang/netty/1.6/netty-1.6.jar"
}
}
},
{
"name": "oshi-project:oshi-core:1.1",
"downloads": {
"artifact": {
"size": 30973,
"sha1": "9ddf7b048a8d701be231c0f4f95fd986198fd2d8",
"path": "oshi-project/oshi-core/1.1/oshi-core-1.1.jar",
"url": "https://libraries.minecraft.net/oshi-project/oshi-core/1.1/oshi-core-1.1.jar"
}
}
},
{
"name": "net.java.dev.jna:jna:3.4.0",
"downloads": {
"artifact": {
"size": 1008730,
"sha1": "803ff252fedbd395baffd43b37341dc4a150a554",
"path": "net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar",
"url": "https://libraries.minecraft.net/net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar"
}
}
},
{
"name": "net.java.dev.jna:platform:3.4.0",
"downloads": {
"artifact": {
"size": 913436,
"sha1": "e3f70017be8100d3d6923f50b3d2ee17714e9c13",
"path": "net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar",
"url": "https://libraries.minecraft.net/net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar"
}
}
},
{
"name": "com.ibm.icu:icu4j-core-mojang:51.2",
"downloads": {
"artifact": {
"size": 1634692,
"sha1": "63d216a9311cca6be337c1e458e587f99d382b84",
"path": "com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar",
"url": "https://libraries.minecraft.net/com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar"
}
}
},
{
"name": "net.sf.jopt-simple:jopt-simple:4.6",
"downloads": {
"artifact": {
"size": 62477,
"sha1": "306816fb57cf94f108a43c95731b08934dcae15c",
"path": "net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.jar",
"url": "https://libraries.minecraft.net/net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.jar"
}
}
},
{
"name": "com.paulscode:codecjorbis:20101023",
"downloads": {
"artifact": {
"size": 103871,
"sha1": "c73b5636faf089d9f00e8732a829577de25237ee",
"path": "com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar",
"url": "https://libraries.minecraft.net/com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar"
}
}
},
{
"name": "com.paulscode:codecwav:20101023",
"downloads": {
"artifact": {
"size": 5618,
"sha1": "12f031cfe88fef5c1dd36c563c0a3a69bd7261da",
"path": "com/paulscode/codecwav/20101023/codecwav-20101023.jar",
"url": "https://libraries.minecraft.net/com/paulscode/codecwav/20101023/codecwav-20101023.jar"
}
}
},
{
"name": "com.paulscode:libraryjavasound:20101123",
"downloads": {
"artifact": {
"size": 21679,
"sha1": "5c5e304366f75f9eaa2e8cca546a1fb6109348b3",
"path": "com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar",
"url": "https://libraries.minecraft.net/com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar"
}
}
},
{
"name": "com.paulscode:librarylwjglopenal:20100824",
"downloads": {
"artifact": {
"size": 18981,
"sha1": "73e80d0794c39665aec3f62eee88ca91676674ef",
"path": "com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.jar",
"url": "https://libraries.minecraft.net/com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.jar"
}
}
},
{
"name": "com.paulscode:soundsystem:20120107",
"downloads": {
"artifact": {
"size": 65020,
"sha1": "419c05fe9be71f792b2d76cfc9b67f1ed0fec7f6",
"path": "com/paulscode/soundsystem/20120107/soundsystem-20120107.jar",
"url": "https://libraries.minecraft.net/com/paulscode/soundsystem/20120107/soundsystem-20120107.jar"
}
}
},
{
"name": "io.netty:netty-all:4.0.23.Final",
"downloads": {
"artifact": {
"size": 1779991,
"sha1": "0294104aaf1781d6a56a07d561e792c5d0c95f45",
"path": "io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.jar",
"url": "https://libraries.minecraft.net/io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.jar"
}
}
},
{
"name": "com.google.guava:guava:17.0",
"downloads": {
"artifact": {
"size": 2243036,
"sha1": "9c6ef172e8de35fd8d4d8783e4821e57cdef7445",
"path": "com/google/guava/guava/17.0/guava-17.0.jar",
"url": "https://libraries.minecraft.net/com/google/guava/guava/17.0/guava-17.0.jar"
}
}
},
{
"name": "org.apache.commons:commons-lang3:3.3.2",
"downloads": {
"artifact": {
"size": 412739,
"sha1": "90a3822c38ec8c996e84c16a3477ef632cbc87a3",
"path": "org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar",
"url": "https://libraries.minecraft.net/org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar"
}
}
},
{
"name": "commons-io:commons-io:2.4",
"downloads": {
"artifact": {
"size": 185140,
"sha1": "b1b6ea3b7e4aa4f492509a4952029cd8e48019ad",
"path": "commons-io/commons-io/2.4/commons-io-2.4.jar",
"url": "https://libraries.minecraft.net/commons-io/commons-io/2.4/commons-io-2.4.jar"
}
}
},
{
"name": "commons-codec:commons-codec:1.9",
"downloads": {
"artifact": {
"size": 263965,
"sha1": "9ce04e34240f674bc72680f8b843b1457383161a",
"path": "commons-codec/commons-codec/1.9/commons-codec-1.9.jar",
"url": "https://libraries.minecraft.net/commons-codec/commons-codec/1.9/commons-codec-1.9.jar"
}
}
},
{
"name": "net.java.jinput:jinput:2.0.5",
"downloads": {
"artifact": {
"size": 208338,
"sha1": "39c7796b469a600f72380316f6b1f11db6c2c7c4",
"path": "net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar",
"url": "https://libraries.minecraft.net/net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar"
}
}
},
{
"name": "net.java.jutils:jutils:1.0.0",
"downloads": {
"artifact": {
"size": 7508,
"sha1": "e12fe1fda814bd348c1579329c86943d2cd3c6a6",
"path": "net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar",
"url": "https://libraries.minecraft.net/net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar"
}
}
},
{
"name": "com.google.code.gson:gson:2.2.4",
"downloads": {
"artifact": {
"size": 190432,
"sha1": "a60a5e993c98c864010053cb901b7eab25306568",
"path": "com/google/code/gson/gson/2.2.4/gson-2.2.4.jar",
"url": "https://libraries.minecraft.net/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar"
}
}
},
{
"name": "com.mojang:authlib:1.5.24",
"downloads": {
"artifact": {
"size": 64353,
"sha1": "0889ff5477b844800cff734babbf42c1bbda4b10",
"path": "com/mojang/authlib/1.5.24/authlib-1.5.24.jar",
"url": "https://libraries.minecraft.net/com/mojang/authlib/1.5.24/authlib-1.5.24.jar"
}
}
},
{
"name": "com.mojang:realms:1.10.4",
"downloads": {
"artifact": {
"size": 3025166,
"sha1": "7e837a5eae3fc08b13d5e1baf5ddf5b5d31aa2ff",
"path": "com/mojang/realms/1.10.4/realms-1.10.4.jar",
"url": "https://libraries.minecraft.net/com/mojang/realms/1.10.4/realms-1.10.4.jar"
}
}
},
{
"name": "org.apache.commons:commons-compress:1.8.1",
"downloads": {
"artifact": {
"size": 365552,
"sha1": "a698750c16740fd5b3871425f4cb3bbaa87f529d",
"path": "org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar",
"url": "https://libraries.minecraft.net/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar"
}
}
},
{
"name": "org.apache.httpcomponents:httpclient:4.3.3",
"downloads": {
"artifact": {
"size": 589512,
"sha1": "18f4247ff4572a074444572cee34647c43e7c9c7",
"path": "org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar",
"url": "https://libraries.minecraft.net/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar"
}
}
},
{
"name": "commons-logging:commons-logging:1.1.3",
"downloads": {
"artifact": {
"size": 62050,
"sha1": "f6f66e966c70a83ffbdb6f17a0919eaf7c8aca7f",
"path": "commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar",
"url": "https://libraries.minecraft.net/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar"
}
}
},
{
"name": "org.apache.httpcomponents:httpcore:4.3.2",
"downloads": {
"artifact": {
"size": 282269,
"sha1": "31fbbff1ddbf98f3aa7377c94d33b0447c646b6e",
"path": "org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar",
"url": "https://libraries.minecraft.net/org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar"
}
}
},
{
"name": "it.unimi.dsi:fastutil:7.0.12_mojang",
"downloads": {
"artifact": {
"size": 522306,
"sha1": "ba787e741efdc425fc5d2ea654b57c15fba27efa",
"path": "it/unimi/dsi/fastutil/7.0.12_mojang/fastutil-7.0.12_mojang.jar",
"url": "https://libraries.minecraft.net/it/unimi/dsi/fastutil/7.0.12_mojang/fastutil-7.0.12_mojang.jar"
}
}
},
{
"name": "org.apache.logging.log4j:log4j-api:2.0-beta9",
"downloads": {
"artifact": {
"size": 108161,
"sha1": "1dd66e68cccd907880229f9e2de1314bd13ff785",
"path": "org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar",
"url": "https://libraries.minecraft.net/org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar"
}
}
},
{
"name": "org.apache.logging.log4j:log4j-core:2.0-beta9",
"downloads": {
"artifact": {
"size": 681134,
"sha1": "678861ba1b2e1fccb594bb0ca03114bb05da9695",
"path": "org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar",
"url": "https://libraries.minecraft.net/org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar"
}
}
},
{
"name": "org.lwjgl.lwjgl:lwjgl:2.9.4-nightly-20150209",
"rules": [
{
"action": "allow"
},
{
"action": "disallow",
"os": {
"name": "osx"
}
}
],
"downloads": {
"artifact": {
"size": 1047168,
"sha1": "697517568c68e78ae0b4544145af031c81082dfe",
"path": "org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.jar"
}
}
},
{
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.4-nightly-20150209",
"rules": [
{
"action": "allow"
},
{
"action": "disallow",
"os": {
"name": "osx"
}
}
],
"downloads": {
"artifact": {
"size": 173887,
"sha1": "d51a7c040a721d13efdfbd34f8b257b2df882ad0",
"path": "org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.jar"
}
}
},
{
"extract": {
"exclude": [
"META-INF/"
]
},
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.4-nightly-20150209",
"natives": {
"linux": "natives-linux",
"osx": "natives-osx",
"windows": "natives-windows"
},
"rules": [
{
"action": "allow"
},
{
"action": "disallow",
"os": {
"name": "osx"
}
}
],
"downloads": {
"classifiers": {
"natives-linux": {
"size": 578680,
"sha1": "931074f46c795d2f7b30ed6395df5715cfd7675b",
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-linux.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-linux.jar"
},
"natives-osx": {
"size": 426822,
"sha1": "bcab850f8f487c3f4c4dbabde778bb82bd1a40ed",
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar"
},
"natives-windows": {
"size": 613748,
"sha1": "b84d5102b9dbfabfeb5e43c7e2828d98a7fc80e0",
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar"
}
},
"artifact": {
"size": 22,
"sha1": "b04f3ee8f5e43fa3b162981b50bb72fe1acabb33",
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209.jar"
}
}
},
{
"name": "org.lwjgl.lwjgl:lwjgl:2.9.2-nightly-20140822",
"rules": [
{
"action": "allow",
"os": {
"name": "osx"
}
}
],
"downloads": {
"artifact": {
"size": 1045632,
"sha1": "7707204c9ffa5d91662de95f0a224e2f721b22af",
"path": "org/lwjgl/lwjgl/lwjgl/2.9.2-nightly-20140822/lwjgl-2.9.2-nightly-20140822.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl/2.9.2-nightly-20140822/lwjgl-2.9.2-nightly-20140822.jar"
}
}
},
{
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.2-nightly-20140822",
"rules": [
{
"action": "allow",
"os": {
"name": "osx"
}
}
],
"downloads": {
"artifact": {
"size": 173887,
"sha1": "f0e612c840a7639c1f77f68d72a28dae2f0c8490",
"path": "org/lwjgl/lwjgl/lwjgl_util/2.9.2-nightly-20140822/lwjgl_util-2.9.2-nightly-20140822.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl_util/2.9.2-nightly-20140822/lwjgl_util-2.9.2-nightly-20140822.jar"
}
}
},
{
"extract": {
"exclude": [
"META-INF/"
]
},
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.2-nightly-20140822",
"natives": {
"linux": "natives-linux",
"osx": "natives-osx",
"windows": "natives-windows"
},
"rules": [
{
"action": "allow",
"os": {
"name": "osx"
}
}
],
"downloads": {
"classifiers": {
"natives-linux": {
"size": 578539,
"sha1": "d898a33b5d0a6ef3fed3a4ead506566dce6720a5",
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-linux.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-linux.jar"
},
"natives-osx": {
"size": 468116,
"sha1": "79f5ce2fea02e77fe47a3c745219167a542121d7",
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-osx.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-osx.jar"
},
"natives-windows": {
"size": 613680,
"sha1": "78b2a55ce4dc29c6b3ec4df8ca165eba05f9b341",
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-windows.jar",
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-windows.jar"
}
}
}
},
{
"extract": {
"exclude": [
"META-INF/"
]
},
"name": "net.java.jinput:jinput-platform:2.0.5",
"natives": {
"linux": "natives-linux",
"osx": "natives-osx",
"windows": "natives-windows"
},
"downloads": {
"classifiers": {
"natives-linux": {
"size": 10362,
"sha1": "7ff832a6eb9ab6a767f1ade2b548092d0fa64795",
"path": "net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-linux.jar",
"url": "https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-linux.jar"
},
"natives-osx": {
"size": 12186,
"sha1": "53f9c919f34d2ca9de8c51fc4e1e8282029a9232",
"path": "net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-osx.jar",
"url": "https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-osx.jar"
},
"natives-windows": {
"size": 155179,
"sha1": "385ee093e01f587f30ee1c8a2ee7d408fd732e16",
"path": "net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-windows.jar",
"url": "https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-windows.jar"
}
}
}
}
],
"logging": {
"client": {
"file": {
"id": "client-1.7.xml",
"sha1": "49e2e41bc339698bd8199e0da9398c926e68c95d",
"size": 467,
"url": "https://launchermeta.mojang.com/mc/log_configs/client-1.7.xml/49e2e41bc339698bd8199e0da9398c926e68c95d/client-1.7.xml"
},
"argument": "-Dlog4j.configurationFile=${path}",
"type": "log4j2-xml"
}
},
"mainClass": "net.minecraft.client.main.Main",
"minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${assets_root} --assetIndex ${assets_index_name} --uuid ${auth_uuid} --accessToken ${auth_access_token} --userType ${user_type} --versionType ${version_type}",
"minimumLauncherVersion": 18,
"releaseTime": "2016-11-14T14:34:40+00:00",
"time": "2016-11-16T14:39:37+00:00",
"type": "release"
}
+5 -6
View File
@@ -8,11 +8,11 @@ buildscript {
}
}
apply plugin: 'net.minecraftforge.gradle.forge'
//Only edit below this line, the above code adds and enables the nessasary things for Forge to be setup.
//Only edit below this line, the above code adds and enables the necessary things for Forge to be setup.
version = "1.0"
group= "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
group = "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "modid"
sourceCompatibility = targetCompatibility = "1.6" // Need this here so eclipse task generates correctly.
@@ -27,7 +27,7 @@ minecraft {
// the mappings can be changed at any time, and must be in the following format.
// snapshot_YYYYMMDD snapshot are built nightly.
// stable_# stables are built at the discretion of the MCP team.
// Use non-default mappings at your own risk. they may not allways work.
// Use non-default mappings at your own risk. they may not always work.
// simply re-run your setup task after changing the mappings to update your workspace.
mappings = "@MAPPINGS@"
// makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable.
@@ -57,8 +57,7 @@ dependencies {
}
processResources
{
processResources {
// this will ensure that this task is redone when the versions change.
inputs.property "version", project.version
inputs.property "mcversion", project.minecraft.version
@@ -71,7 +70,7 @@ processResources
expand 'version':project.version, 'mcversion':project.minecraft.version
}
// copy everything else, thats not the mcmod.info
// copy everything else except the mcmod.info
from(sourceSets.main.resources.srcDirs) {
exclude 'mcmod.info'
}
+7
View File
@@ -0,0 +1,7 @@
{
"pack": {
"description": "examplemod resources",
"pack_format": 3,
"_comment": "A pack_format of 3 should be used starting with Minecraft 1.11. All resources, including language files, should be lowercase (eg: en_us.lang). A pack_format of 2 will load your mod resources with LegacyV2Adapter, which requires language files to have uppercase letters (eg: en_US.lang)."
}
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/Block.java
+++ ../src-work/minecraft/net/minecraft/block/Block.java
@@ -44,11 +44,12 @@
@@ -50,11 +50,12 @@
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@@ -14,19 +14,17 @@
+ @Deprecated //Modders: DO NOT use this! Use GameRegistry
+ public static final ObjectIntIdentityMap<IBlockState> field_176229_d = net.minecraftforge.fml.common.registry.GameData.getBlockStateIDMap();
public static final AxisAlignedBB field_185505_j = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
@Nullable
public static final AxisAlignedBB field_185506_k = null;
private CreativeTabs field_149772_a;
@@ -84,7 +85,8 @@
public static Block func_149729_e(int p_149729_0_)
{
- return (Block)field_149771_c.func_148754_a(p_149729_0_);
+ Block ret = (Block)field_149771_c.func_148754_a(p_149729_0_);
+ return ret == null ? net.minecraft.init.Blocks.field_150350_a : ret;
}
public static IBlockState func_176220_d(int p_176220_0_)
@@ -292,7 +294,7 @@
@@ -73,6 +74,7 @@
public float field_149763_I;
protected final Material field_149764_J;
protected final MapColor field_181083_K;
+ @Deprecated // Forge: State/world/pos/entity sensitive version below
public float field_149765_K;
protected final BlockStateContainer field_176227_L;
private IBlockState field_176228_M;
@@ -307,7 +309,7 @@
public boolean func_176200_f(IBlockAccess p_176200_1_, BlockPos p_176200_2_)
{
@@ -35,7 +33,7 @@
}
public Block func_149711_c(float p_149711_1_)
@@ -330,9 +332,10 @@
@@ -345,9 +347,10 @@
return this.field_149789_z;
}
@@ -47,7 +45,7 @@
}
@Deprecated
@@ -376,13 +379,13 @@
@@ -360,13 +363,13 @@
@SideOnly(Side.CLIENT)
public int func_185484_c(IBlockState p_185484_1_, IBlockAccess p_185484_2_, BlockPos p_185484_3_)
{
@@ -63,7 +61,7 @@
}
else
{
@@ -446,7 +449,7 @@
@@ -430,7 +433,7 @@
}
}
@@ -71,8 +69,8 @@
+ return !p_176225_2_.func_180495_p(p_176225_3_.func_177972_a(p_176225_4_)).doesSideBlockRendering(p_176225_2_, p_176225_3_.func_177972_a(p_176225_4_), p_176225_4_.func_176734_d());
}
@Deprecated
@@ -506,6 +509,10 @@
public boolean func_176212_b(IBlockAccess p_176212_1_, BlockPos p_176212_2_, EnumFacing p_176212_3_)
@@ -521,6 +524,10 @@
public void func_180663_b(World p_180663_1_, BlockPos p_180663_2_, IBlockState p_180663_3_)
{
@@ -83,7 +81,7 @@
}
public int func_149745_a(Random p_149745_1_)
@@ -522,8 +529,7 @@
@@ -536,8 +543,7 @@
@Deprecated
public float func_180647_a(IBlockState p_180647_1_, EntityPlayer p_180647_2_, World p_180647_3_, BlockPos p_180647_4_)
{
@@ -93,7 +91,7 @@
}
public final void func_176226_b(World p_176226_1_, BlockPos p_176226_2_, IBlockState p_176226_3_, int p_176226_4_)
@@ -533,20 +539,16 @@
@@ -547,20 +553,17 @@
public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_)
{
@@ -101,7 +99,8 @@
+ if (!p_180653_1_.field_72995_K && !p_180653_1_.restoringBlockSnapshots) // do not drop items while restoring blockstates, prevents item dupe
{
- int i = this.func_149679_a(p_180653_5_, p_180653_1_.field_73012_v);
+ java.util.List<ItemStack> items = getDrops(p_180653_1_, p_180653_2_, p_180653_3_, p_180653_5_);
+ List<ItemStack> items = NonNullList.func_191196_a();
+ items.addAll(getDrops(p_180653_1_, p_180653_2_, p_180653_3_, p_180653_5_));
+ p_180653_4_ = net.minecraftforge.event.ForgeEventFactory.fireBlockHarvesting(items, p_180653_1_, p_180653_2_, p_180653_3_, p_180653_5_, p_180653_4_, false, harvesters.get());
- for (int j = 0; j < i; ++j)
@@ -111,7 +110,7 @@
{
- Item item = this.func_180660_a(p_180653_3_, p_180653_1_.field_73012_v, p_180653_5_);
-
- if (item != null)
- if (item != Items.field_190931_a)
- {
- func_180635_a(p_180653_1_, p_180653_2_, new ItemStack(item, 1, this.func_180651_a(p_180653_3_)));
- }
@@ -119,12 +118,12 @@
}
}
}
@@ -554,8 +556,13 @@
@@ -568,8 +571,13 @@
public static void func_180635_a(World p_180635_0_, BlockPos p_180635_1_, ItemStack p_180635_2_)
{
- if (!p_180635_0_.field_72995_K && p_180635_0_.func_82736_K().func_82766_b("doTileDrops"))
+ if (!p_180635_0_.field_72995_K && p_180635_0_.func_82736_K().func_82766_b("doTileDrops") && !p_180635_0_.restoringBlockSnapshots) // do not drop items while restoring blockstates, prevents item dupe
- if (!p_180635_0_.field_72995_K && !p_180635_2_.func_190926_b() && p_180635_0_.func_82736_K().func_82766_b("doTileDrops"))
+ if (!p_180635_0_.field_72995_K && !p_180635_2_.func_190926_b() && p_180635_0_.func_82736_K().func_82766_b("doTileDrops")&& !p_180635_0_.restoringBlockSnapshots) // do not drop items while restoring blockstates, prevents item dupe
{
+ if (captureDrops.get())
+ {
@@ -134,7 +133,15 @@
float f = 0.5F;
double d0 = (double)(p_180635_0_.field_73012_v.nextFloat() * 0.5F) + 0.25D;
double d1 = (double)(p_180635_0_.field_73012_v.nextFloat() * 0.5F) + 0.25D;
@@ -627,7 +634,7 @@
@@ -598,6 +606,7 @@
return 0;
}
+ @Deprecated //Forge: State sensitive version
public float func_149638_a(Entity p_149638_1_)
{
return this.field_149781_w / 5.0F;
@@ -636,7 +645,7 @@
public boolean func_176196_c(World p_176196_1_, BlockPos p_176196_2_)
{
@@ -142,8 +149,8 @@
+ return p_176196_1_.func_180495_p(p_176196_2_).func_177230_c().func_176200_f(p_176196_1_, p_176196_2_);
}
public boolean func_180639_a(World p_180639_1_, BlockPos p_180639_2_, IBlockState p_180639_3_, EntityPlayer p_180639_4_, EnumHand p_180639_5_, @Nullable ItemStack p_180639_6_, EnumFacing p_180639_7_, float p_180639_8_, float p_180639_9_, float p_180639_10_)
@@ -639,6 +646,8 @@
public boolean func_180639_a(World p_180639_1_, BlockPos p_180639_2_, IBlockState p_180639_3_, EntityPlayer p_180639_4_, EnumHand p_180639_5_, EnumFacing p_180639_6_, float p_180639_7_, float p_180639_8_, float p_180639_9_)
@@ -648,6 +657,8 @@
{
}
@@ -152,21 +159,21 @@
public IBlockState func_180642_a(World p_180642_1_, BlockPos p_180642_2_, EnumFacing p_180642_3_, float p_180642_4_, float p_180642_5_, float p_180642_6_, int p_180642_7_, EntityLivingBase p_180642_8_)
{
return this.func_176203_a(p_180642_7_);
@@ -680,25 +689,35 @@
@@ -689,21 +700,35 @@
p_180657_2_.func_71029_a(StatList.func_188055_a(this));
p_180657_2_.func_71020_j(0.025F);
p_180657_2_.func_71020_j(0.005F);
- if (this.func_149700_E() && EnchantmentHelper.func_77506_a(Enchantments.field_185306_r, p_180657_6_) > 0)
+ if (this.canSilkHarvest(p_180657_1_, p_180657_3_, p_180657_4_, p_180657_2_) && EnchantmentHelper.func_77506_a(Enchantments.field_185306_r, p_180657_6_) > 0)
{
+ java.util.List<ItemStack> items = new java.util.ArrayList<ItemStack>();
ItemStack itemstack = this.func_180643_i(p_180657_4_);
if (itemstack != null)
{
- func_180635_a(p_180657_1_, p_180657_3_, itemstack);
- func_180635_a(p_180657_1_, p_180657_3_, itemstack);
+
+ if (!itemstack.func_190926_b())
+ {
+ items.add(itemstack);
}
+ }
+
+ net.minecraftforge.event.ForgeEventFactory.fireBlockHarvesting(items, p_180657_1_, p_180657_3_, p_180657_4_, 0, 1.0f, true, p_180657_2_);
+ for (ItemStack item : items)
@@ -190,30 +197,25 @@
+ return this.func_176223_P().func_185917_h() && !this.hasTileEntity(silk_check_state.get());
}
@Nullable
@@ -794,9 +813,11 @@
protected ItemStack func_180643_i(IBlockState p_180643_1_)
@@ -789,6 +814,7 @@
p_176216_2_.field_70181_x = 0.0D;
}
@Nullable
+ @Deprecated // Forge: Use more sensitive version below: getPickBlock
public ItemStack func_185473_a(World p_185473_1_, BlockPos p_185473_2_, IBlockState p_185473_3_)
{
- return new ItemStack(Item.func_150898_a(this), 1, this.func_180651_a(p_185473_3_));
+ Item item = Item.func_150898_a(this);
+ return item == null ? null : new ItemStack(item, 1, this.func_180651_a(p_185473_3_));
}
@SideOnly(Side.CLIENT)
@@ -883,6 +904,7 @@
return Block.EnumOffsetType.NONE;
return new ItemStack(Item.func_150898_a(this), 1, this.func_180651_a(p_185473_3_));
@@ -893,6 +919,7 @@
}
}
+ @Deprecated // Forge - World/state/pos/entity sensitive version below
public SoundType func_185467_w()
{
return this.field_149762_H;
@@ -893,6 +915,1187 @@
return "Block{" + field_149771_c.func_177774_c(this) + "}";
@@ -908,6 +935,1249 @@
{
}
+ /* ======================================== FORGE START =====================================*/
@@ -221,8 +223,45 @@
+ protected ThreadLocal<EntityPlayer> harvesters = new ThreadLocal();
+ private ThreadLocal<IBlockState> silk_check_state = new ThreadLocal();
+ protected static java.util.Random RANDOM = new java.util.Random(); // Useful for random things without a seed.
+
+ /**
+ * Get a light value for the block at the specified coordinates, normal ranges are between 0 and 15
+ * Gets the slipperiness at the given location at the given state. Normally
+ * between 0 and 1.
+ * <p>
+ * Note that entities may reduce slipperiness by a certain factor of their own;
+ * for {@link net.minecraft.entity.EntityLivingBase}, this is {@code .91}.
+ * {@link net.minecraft.entity.item.EntityItem} uses {@code .98}, and
+ * {@link net.minecraft.entity.projectile.EntityFishHook} uses {@code .92}.
+ *
+ * @param state state of the block
+ * @param world the world
+ * @param pos the position in the world
+ * @param entity the entity in question
+ * @return the factor by which the entity's motion should be multiplied
+ */
+ public float getSlipperiness(IBlockState state, IBlockAccess world, BlockPos pos, @Nullable Entity entity)
+ {
+ return field_149765_K;
+ }
+
+ /**
+ * Sets the base slipperiness level. Normally between 0 and 1.
+ * <p>
+ * <b>Calling this method may have no effect on the function of this block</b>,
+ * or may not have the expected result. This block is free to caclculate
+ * its slipperiness arbitrarily. This method is guaranteed to work on the
+ * base {@code Block} class.
+ *
+ * @param slipperiness the base slipperiness of this block
+ * @see #getSlipperiness(IBlockState, IBlockAccess, BlockPos, Entity)
+ */
+ public void setDefaultSlipperiness(float slipperiness)
+ {
+ this.field_149765_K = slipperiness;
+ }
+
+ /**
+ * Get a light value for this block, taking into account the given state and coordinates, normal ranges are between 0 and 15
+ *
+ * @param state Block state
+ * @param world The current world
@@ -231,11 +270,6 @@
+ */
+ public int getLightValue(IBlockState state, IBlockAccess world, BlockPos pos)
+ {
+ IBlockState other = world.func_180495_p(pos);
+ if (other.func_177230_c() != this)
+ {
+ return other.getLightValue(world, pos);
+ }
+ return state.func_185906_d();
+ }
+
@@ -262,7 +296,7 @@
+ */
+ public boolean isNormalCube(IBlockState state, IBlockAccess world, BlockPos pos)
+ {
+ return state.func_185904_a().func_76218_k() && state.func_185917_h() && !state.func_185897_m();
+ return state.func_185915_l();
+ }
+
+ /**
@@ -363,7 +397,7 @@
+ * useful for creating pure logic-blocks that will be invisible
+ * to the player and otherwise interact as air would.
+ *
+ * @param sata The current state
+ * @param state The current state
+ * @param world The current world
+ * @param pos Block position in world
+ * @return True if the block considered air
@@ -376,8 +410,8 @@
+ /**
+ * Determines if the player can harvest this block, obtaining it's drops when the block is destroyed.
+ *
+ * @param player The player damaging the block, may be null
+ * @param meta The block's current metadata
+ * @param player The player damaging the block
+ * @param pos The block's current position
+ * @return True to spawn the drops
+ */
+ public boolean canHarvestBlock(IBlockAccess world, BlockPos pos, EntityPlayer player)
@@ -459,7 +493,6 @@
+ *
+ * @param world The current world
+ * @param pos Block position in world
+ * @param metadata The blocks current metadata
+ * @param side The face that the fire is coming from
+ * @return True if this block sustains fire, meaning it will never go out.
+ */
@@ -497,9 +530,10 @@
+ * Return the same thing you would from that function.
+ * This will fall back to ITileEntityProvider.createNewTileEntity(World) if this block is a ITileEntityProvider
+ *
+ * @param metadata The Metadata of the current block
+ * @param state The state of the current block
+ * @return A instance of a class extending TileEntity
+ */
+ @Nullable
+ public TileEntity createTileEntity(World world, IBlockState state)
+ {
+ if (isTileProvider)
@@ -542,7 +576,7 @@
+ for(int i = 0; i < count; i++)
+ {
+ Item item = this.func_180660_a(state, rand, fortune);
+ if (item != null)
+ if (item != Items.field_190931_a)
+ {
+ ret.add(new ItemStack(item, 1, this.func_180651_a(state)));
+ }
@@ -593,7 +627,7 @@
+ * @param player The player or camera entity, null in some cases.
+ * @return True to treat this as a bed
+ */
+ public boolean isBed(IBlockState state, IBlockAccess world, BlockPos pos, Entity player)
+ public boolean isBed(IBlockState state, IBlockAccess world, BlockPos pos, @Nullable Entity player)
+ {
+ return this == net.minecraft.init.Blocks.field_150324_C;
+ }
@@ -608,7 +642,8 @@
+ * @param player The player or camera entity, null in some cases.
+ * @return The spawn position
+ */
+ public BlockPos getBedSpawnPosition(IBlockState state, IBlockAccess world, BlockPos pos, EntityPlayer player)
+ @Nullable
+ public BlockPos getBedSpawnPosition(IBlockState state, IBlockAccess world, BlockPos pos, @Nullable EntityPlayer player)
+ {
+ if (world instanceof World)
+ return BlockBed.func_176468_a((World)world, pos, 0);
@@ -734,7 +769,7 @@
+ }
+
+ /**
+ * Location sensitive version of getExplosionRestance
+ * Location sensitive version of getExplosionResistance
+ *
+ * @param world The current world
+ * @param pos Block position in world
@@ -742,7 +777,7 @@
+ * @param explosion The explosion
+ * @return The amount of the explosion absorbed.
+ */
+ public float getExplosionResistance(World world, BlockPos pos, Entity exploder, Explosion explosion)
+ public float getExplosionResistance(World world, BlockPos pos, @Nullable Entity exploder, Explosion explosion)
+ {
+ return func_149638_a(exploder);
+ }
@@ -754,7 +789,7 @@
+ *
+ * @param world The current world
+ * @param pos Block position in world
+ * @param Explosion The explosion instance affecting the block
+ * @param explosion The explosion instance affecting the block
+ */
+ public void onBlockExploded(World world, BlockPos pos, Explosion explosion)
+ {
@@ -772,7 +807,7 @@
+ * @param side The side that is trying to make the connection, CAN BE NULL
+ * @return True to make the connection
+ */
+ public boolean canConnectRedstone(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side)
+ public boolean canConnectRedstone(IBlockState state, IBlockAccess world, BlockPos pos, @Nullable EnumFacing side)
+ {
+ return state.func_185897_m() && side != null;
+ }
@@ -798,24 +833,11 @@
+ }
+ }
+
+ /** Dont think this exists in 1.8 anymore
+ /**
+ * Determines if this block should render in this pass.
+ *
+ * @param pass The pass in question
+ * @return True to render
+ * /
+ public boolean canRenderInPass(int pass)
+ {
+ return pass == func_149701_w();
+ }
+ */
+
+ /**
+ * Called when a user uses the creative pick block button on this block
+ *
+ * @param target The full target the player is looking at
+ * @return A ItemStack to add to the player's inventory, Null if nothing should be added.
+ * @return A ItemStack to add to the player's inventory, empty itemstack if nothing should be added.
+ */
+ public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player)
+ {
@@ -1064,10 +1086,39 @@
+ IBlockState state = world.func_180495_p(pos);
+ for (IProperty<?> prop : state.func_177228_b().keySet())
+ {
+ if (prop.func_177701_a().equals("facing") || prop.func_177701_a().equals("rotation"))
+ if ((prop.func_177701_a().equals("facing") || prop.func_177701_a().equals("rotation")) && prop.func_177699_b() == EnumFacing.class)
+ {
+ world.func_175656_a(pos, state.func_177231_a(prop));
+ return true;
+ Block block = state.func_177230_c();
+ if (!(block instanceof BlockBed) && !(block instanceof BlockPistonExtension))
+ {
+ IBlockState newState;
+ //noinspection unchecked
+ IProperty<EnumFacing> facingProperty = (IProperty<EnumFacing>) prop;
+ EnumFacing facing = state.func_177229_b(facingProperty);
+ java.util.Collection<EnumFacing> validFacings = facingProperty.func_177700_c();
+
+ // rotate horizontal facings clockwise
+ if (validFacings.size() == 4 && !validFacings.contains(EnumFacing.UP) && !validFacings.contains(EnumFacing.DOWN))
+ {
+ newState = state.func_177226_a(facingProperty, facing.func_176746_e());
+ }
+ else
+ {
+ // rotate other facings about the axis
+ EnumFacing rotatedFacing = facing.func_176732_a(axis.func_176740_k());
+ if (validFacings.contains(rotatedFacing))
+ {
+ newState = state.func_177226_a(facingProperty, rotatedFacing);
+ }
+ else // abnormal facing property, just cycle it
+ {
+ newState = state.func_177231_a(facingProperty);
+ }
+ }
+
+ world.func_175656_a(pos, newState);
+ return true;
+ }
+ }
+ }
+ return false;
@@ -1080,12 +1131,13 @@
+ * @param pos Block position in world
+ * @return An array of valid axes to rotate around, or null for none or unknown
+ */
+ @Nullable
+ public EnumFacing[] getValidRotations(World world, BlockPos pos)
+ {
+ IBlockState state = world.func_180495_p(pos);
+ for (IProperty<?> prop : state.func_177228_b().keySet())
+ {
+ if (prop.func_177701_a().equals("facing") && prop.func_177699_b() == EnumFacing.class)
+ if ((prop.func_177701_a().equals("facing") || prop.func_177701_a().equals("rotation")) && prop.func_177699_b() == EnumFacing.class)
+ {
+ @SuppressWarnings("unchecked")
+ java.util.Collection<EnumFacing> values = ((java.util.Collection<EnumFacing>)prop.func_177700_c());
@@ -1156,6 +1208,17 @@
+ public void onNeighborChange(IBlockAccess world, BlockPos pos, BlockPos neighbor){}
+
+ /**
+ * Called on an Observer block whenever an update for an Observer is received.
+ *
+ * @param observerState The Observer block's state.
+ * @param world The current world.
+ * @param observerPos The Observer block's position.
+ * @param changedBlock The updated block.
+ * @param changedBlockPos The updated block's position.
+ */
+ public void observedNeighborChange(IBlockState observerState, World world, BlockPos observerPos, Block changedBlock, BlockPos changedBlockPos){}
+
+ /**
+ * Called to determine whether to allow the a block to handle its own indirect power rather than using the default rules.
+ * @param world The world
+ * @param pos Block position in world
@@ -1174,7 +1237,6 @@
+ *
+ * @param world The current world
+ * @param pos Block position in world
+ * @param side The side to check
+ * @return true To be notified of changes
+ */
+ public boolean getWeakChanges(IBlockAccess world, BlockPos pos)
@@ -1227,7 +1289,7 @@
+ * Queries the class of tool required to harvest this block, if null is returned
+ * we assume that anything can harvest this block.
+ */
+ public String getHarvestTool(IBlockState state)
+ @Nullable public String getHarvestTool(IBlockState state)
+ {
+ return harvestTool[func_176201_c(state)];
+ }
@@ -1236,7 +1298,6 @@
+ * Queries the harvest level of this item stack for the specified tool class,
+ * Returns -1 if this tool is not of the specified type
+ *
+ * @param stack This item stack instance
+ * @return Harvest level, or -1 if not the specified tool type.
+ */
+ public int getHarvestLevel(IBlockState state)
@@ -1276,10 +1337,11 @@
+ * @param testingHead when true, its testing the entities head for vision, breathing ect... otherwise its testing the body, for swimming and movement adjustment.
+ * @return null for default behavior, true if the entity is within the material, false if it was not.
+ */
+ public Boolean isEntityInsideMaterial(IBlockAccess world, BlockPos blockpos, IBlockState iblockstate, Entity entity, double yToTest, Material materialIn, boolean testingHead)
+ {
+ return null;
+ }
+ @Nullable
+ public Boolean isEntityInsideMaterial(IBlockAccess world, BlockPos blockpos, IBlockState iblockstate, Entity entity, double yToTest, Material materialIn, boolean testingHead)
+ {
+ return null;
+ }
+
+ /**
+ * Called when boats or fishing hooks are inside the block to check if they are inside
@@ -1291,6 +1353,7 @@
+ * @param materialIn to check for.
+ * @return null for default behavior, true if the box is within the material, false if it was not.
+ */
+ @Nullable
+ public Boolean isAABBInsideMaterial(World world, BlockPos pos, AxisAlignedBB boundingBox, Material materialIn)
+ {
+ return null;
@@ -1298,23 +1361,11 @@
+
+ /**
+ * Queries if this block should render in a given layer.
+ * ISmartBlockModel can use {@link MinecraftForgeClient#getRenderLayer()} to alter their model based on layer.
+ *
+ * @deprecated New method with state sensitivity: {@link #canRenderInLayer(IBlockState, BlockRenderLayer)}
+ */
+ @Deprecated
+ public boolean canRenderInLayer(BlockRenderLayer layer)
+ {
+ return func_180664_k() == layer;
+ }
+
+ /**
+ * Queries if this block should render in a given layer.
+ * ISmartBlockModel can use {@link MinecraftForgeClient#getRenderLayer()} to alter their model based on layer.
+ * ISmartBlockModel can use {@link net.minecraftforge.client.MinecraftForgeClient#getRenderLayer()} to alter their model based on layer.
+ */
+ public boolean canRenderInLayer(IBlockState state, BlockRenderLayer layer)
+ {
+ return canRenderInLayer(layer);
+ return func_180664_k() == layer;
+ }
+ // For Internal use only to capture droped items inside getDrops
+ protected static ThreadLocal<Boolean> captureDrops = new ThreadLocal<Boolean>()
@@ -1331,7 +1382,7 @@
+ {
+ captureDrops.set(true);
+ capturedDrops.get().clear();
+ return null;
+ return java.util.Collections.emptyList();
+ }
+ else
+ {
@@ -1341,17 +1392,6 @@
+ }
+
+ /**
+ * Add information to the blocks tooltip, called from the default implementation of {@link ItemBlock#addInformation(ItemStack, EntityPlayer, List, boolean)}
+ * @param stack The stack the tooltip is being retrieved for
+ * @param player The player retrieving the tooltip
+ * @param tooltip The lines to be displayed on the tooltip
+ * @param advanced If the client has advanced debug tooltips enabled
+ */
+ public void addInformation(ItemStack stack, EntityPlayer player, List<String> tooltip, boolean advanced)
+ {
+ }
+
+ /**
+ * Sensitive version of getSoundType
+ * @param state The state
+ * @param world The world
@@ -1387,25 +1427,52 @@
+ * @param hitZ The Z coordinate of the hit vector
+ * @param meta The metadata of {@link ItemStack} as processed by {@link Item#getMetadata(int)}
+ * @param placer The entity placing the block
+ * @param stack The stack being used to place this block
+ * @param hand The player hand used to place this block
+ * @return The state to be placed in the world
+ */
+ public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer, ItemStack stack)
+ public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer, EnumHand hand)
+ {
+ return func_180642_a(world, pos, facing, hitX, hitY, hitZ, meta, placer);
+ }
+
+ /**
+ * Determines if another block can connect to this block
+ *
+ * @param world The current world
+ * @param pos The position of this block
+ * @param facing The side the connecting block is on
+ * @return True to allow another block to connect to this block
+ */
+ public boolean canBeConnectedTo(IBlockAccess world, BlockPos pos, EnumFacing facing)
+ {
+ return false;
+ }
+
+ /**
+ * Get the {@code PathNodeType} for this block. Return {@code null} for vanilla behavior.
+ *
+ * @return the PathNodeType
+ */
+ @Nullable
+ public net.minecraft.pathfinding.PathNodeType getAiPathNodeType(IBlockState state, IBlockAccess world, BlockPos pos)
+ {
+ return isBurning(world, pos) ? net.minecraft.pathfinding.PathNodeType.DAMAGE_FIRE : null;
+ }
+
+ /* ========================================= FORGE END ======================================*/
+
public static void func_149671_p()
{
func_176215_a(0, field_176230_a, (new BlockAir()).func_149663_c("air"));
@@ -1169,11 +2372,7 @@
@@ -1201,14 +2471,7 @@
}
else
{
- for (IBlockState iblockstate : block16.func_176194_O().func_177619_a())
- UnmodifiableIterator lvt_18_2_ = block16.func_176194_O().func_177619_a().iterator();
-
- while (lvt_18_2_.hasNext())
- {
- IBlockState iblockstate = (IBlockState)lvt_18_2_.next();
- int k = field_149771_c.func_148757_b(block16) << 4 | block16.func_176201_c(iblockstate);
- field_176229_d.func_148746_a(iblockstate, k);
- }
@@ -1,21 +1,23 @@
--- ../src-base/minecraft/net/minecraft/block/BlockBanner.java
+++ ../src-work/minecraft/net/minecraft/block/BlockBanner.java
@@ -107,14 +107,7 @@
@@ -89,16 +89,9 @@
public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_)
{
- ItemStack itemstack = this.func_185549_e(p_180653_1_, p_180653_2_, p_180653_3_);
- ItemStack itemstack = this.func_185549_e(p_180653_1_, p_180653_2_);
-
- if (itemstack != null)
- if (itemstack.func_190926_b())
{
- func_180635_a(p_180653_1_, p_180653_2_, itemstack);
- }
- else
- {
super.func_180653_a(p_180653_1_, p_180653_2_, p_180653_3_, p_180653_4_, p_180653_5_);
}
- else
- {
- func_180635_a(p_180653_1_, p_180653_2_, itemstack);
- }
}
@@ -141,6 +134,28 @@
public boolean func_176196_c(World p_176196_1_, BlockPos p_176196_2_)
@@ -120,6 +113,25 @@
}
}
@@ -27,12 +29,9 @@
+ java.util.List<ItemStack> ret = new java.util.ArrayList<ItemStack>();
+ if (te instanceof TileEntityBanner)
+ {
+ TileEntityBanner banner = (TileEntityBanner)te;
+ ItemStack item = new ItemStack(Items.field_179564_cE, 1, banner.func_175115_b());
+ NBTTagCompound nbt = new NBTTagCompound();
+ TileEntityBanner.func_181020_a(nbt, banner.func_175115_b(), banner.func_181021_d());
+ item.func_77983_a("BlockEntityTag", nbt);
+ ret.add(item);
+ TileEntityBanner tileentitybanner = (TileEntityBanner)te;
+ ItemStack itemstack = tileentitybanner.func_190615_l();
+ ret.add(itemstack);
+ }
+ else
+ {
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockButton.java
+++ ../src-work/minecraft/net/minecraft/block/BlockButton.java
@@ -91,7 +91,7 @@
@@ -90,7 +90,7 @@
protected static boolean func_181088_a(World p_181088_0_, BlockPos p_181088_1_, EnumFacing p_181088_2_)
{
BlockPos blockpos = p_181088_1_.func_177972_a(p_181088_2_);
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockCactus.java
+++ ../src-work/minecraft/net/minecraft/block/BlockCactus.java
@@ -18,7 +18,7 @@
@@ -19,7 +19,7 @@
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@@ -9,7 +9,7 @@
{
public static final PropertyInteger field_176587_a = PropertyInteger.func_177719_a("age", 0, 15);
protected static final AxisAlignedBB field_185593_b = new AxisAlignedBB(0.0625D, 0.0D, 0.0625D, 0.9375D, 0.9375D, 0.9375D);
@@ -49,6 +49,8 @@
@@ -50,6 +50,8 @@
{
int j = ((Integer)p_180650_3_.func_177229_b(field_176587_a)).intValue();
@@ -18,7 +18,7 @@
if (j == 15)
{
p_180650_1_.func_175656_a(blockpos, this.func_176223_P());
@@ -60,6 +62,8 @@
@@ -61,6 +63,8 @@
{
p_180650_1_.func_180501_a(p_180650_2_, p_180650_3_.func_177226_a(field_176587_a, Integer.valueOf(j + 1)), 4);
}
@@ -27,7 +27,7 @@
}
}
}
@@ -110,8 +114,8 @@
@@ -111,8 +115,8 @@
}
}
@@ -38,7 +38,7 @@
}
public void func_180634_a(World p_180634_1_, BlockPos p_180634_2_, IBlockState p_180634_3_, Entity p_180634_4_)
@@ -135,6 +139,18 @@
@@ -136,6 +140,18 @@
return ((Integer)p_176201_1_.func_177229_b(field_176587_a)).intValue();
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockChest.java
+++ ../src-work/minecraft/net/minecraft/block/BlockChest.java
@@ -514,7 +514,7 @@
@@ -522,7 +522,7 @@
private boolean func_176456_n(World p_176456_1_, BlockPos p_176456_2_)
{
@@ -9,3 +9,14 @@
}
private boolean func_176453_o(World p_176453_1_, BlockPos p_176453_2_)
@@ -587,4 +587,10 @@
BASIC,
TRAP;
}
+
+ /* ======================================== FORGE START =====================================*/
+ public boolean rotateBlock(World world, BlockPos pos, EnumFacing axis)
+ {
+ return !func_176454_e(world, pos) && super.rotateBlock(world, pos, axis);
+ }
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockChorusFlower.java
+++ ../src-work/minecraft/net/minecraft/block/BlockChorusFlower.java
@@ -52,7 +52,7 @@
@@ -53,7 +53,7 @@
{
int i = ((Integer)p_180650_3_.func_177229_b(field_185607_a)).intValue();
@@ -9,7 +9,7 @@
{
boolean flag = false;
boolean flag1 = false;
@@ -141,6 +141,7 @@
@@ -142,6 +142,7 @@
{
this.func_185605_c(p_180650_1_, p_180650_2_);
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockCrops.java
+++ ../src-work/minecraft/net/minecraft/block/BlockCrops.java
@@ -79,9 +79,10 @@
@@ -78,9 +78,10 @@
{
float f = func_180672_a(this, p_180650_1_, p_180650_2_);
@@ -12,7 +12,7 @@
}
}
}
@@ -117,11 +118,11 @@
@@ -116,11 +117,11 @@
float f1 = 0.0F;
IBlockState iblockstate = p_180672_1_.func_180495_p(blockpos.func_177982_a(i, 0, j));
@@ -26,7 +26,7 @@
{
f1 = 3.0F;
}
@@ -162,7 +163,8 @@
@@ -161,7 +162,8 @@
public boolean func_180671_f(World p_180671_1_, BlockPos p_180671_2_, IBlockState p_180671_3_)
{
@@ -36,14 +36,14 @@
}
protected Item func_149866_i()
@@ -175,11 +177,33 @@
@@ -174,11 +176,33 @@
return Items.field_151015_O;
}
+ @Override
+ public java.util.List<ItemStack> getDrops(net.minecraft.world.IBlockAccess world, BlockPos pos, IBlockState state, int fortune)
+ {
+ java.util.List<ItemStack> ret = super.getDrops(world, pos, state, fortune);
+ java.util.List<ItemStack> ret = super.getDrops(world, pos, state, 0);
+ int age = func_185527_x(state);
+ Random rand = world instanceof World ? ((World)world).field_73012_v : new Random();
+
@@ -64,7 +64,8 @@
+
public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_)
{
super.func_180653_a(p_180653_1_, p_180653_2_, p_180653_3_, p_180653_4_, 0);
- super.func_180653_a(p_180653_1_, p_180653_2_, p_180653_3_, p_180653_4_, 0);
+ super.func_180653_a(p_180653_1_, p_180653_2_, p_180653_3_, p_180653_4_, p_180653_5_);
- if (!p_180653_1_.field_72995_K)
+ if (false && !p_180653_1_.field_72995_K) // Forge: NOP all this.
@@ -9,16 +9,7 @@
{
protected static final AxisAlignedBB field_185516_a = new AxisAlignedBB(0.09999999403953552D, 0.0D, 0.09999999403953552D, 0.8999999761581421D, 0.800000011920929D, 0.8999999761581421D);
@@ -59,7 +59,7 @@
public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, @Nullable TileEntity p_180657_5_, @Nullable ItemStack p_180657_6_)
{
- if (!p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ)
+ if (false && !p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ) // Forge: Noop
{
p_180657_2_.func_71029_a(StatList.func_188055_a(this));
func_180635_a(p_180657_1_, p_180657_3_, new ItemStack(Blocks.field_150330_I, 1, 0));
@@ -69,4 +69,11 @@
@@ -68,4 +68,11 @@
super.func_180657_a(p_180657_1_, p_180657_2_, p_180657_3_, p_180657_4_, p_180657_5_, p_180657_6_);
}
}
@@ -1,15 +1,15 @@
--- ../src-base/minecraft/net/minecraft/block/BlockDoor.java
+++ ../src-work/minecraft/net/minecraft/block/BlockDoor.java
@@ -108,7 +108,7 @@
@@ -107,7 +107,7 @@
{
if (this.field_149764_J == Material.field_151573_f)
{
- return true;
- return false;
+ return false; //Allow items to interact with the door
}
else
{
@@ -176,7 +176,7 @@
@@ -175,7 +175,7 @@
flag1 = true;
}
@@ -18,7 +18,7 @@
{
p_189540_2_.func_175698_g(p_189540_3_);
flag1 = true;
@@ -221,7 +221,7 @@
@@ -219,7 +219,7 @@
public boolean func_176196_c(World p_176196_1_, BlockPos p_176196_2_)
{
@@ -37,15 +37,15 @@
if (p_180671_3_.func_177229_b(field_176492_b) == BlockDoublePlant.EnumBlockHalf.UPPER)
{
return p_180671_1_.func_180495_p(p_180671_2_.func_177977_b()).func_177230_c() == this;
@@ -151,7 +149,6 @@
@@ -150,7 +148,6 @@
public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, @Nullable TileEntity p_180657_5_, @Nullable ItemStack p_180657_6_)
public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, @Nullable TileEntity p_180657_5_, ItemStack p_180657_6_)
{
- if (p_180657_1_.field_72995_K || p_180657_6_ == null || p_180657_6_.func_77973_b() != Items.field_151097_aZ || p_180657_4_.func_177229_b(field_176492_b) != BlockDoublePlant.EnumBlockHalf.LOWER || !this.func_176489_b(p_180657_1_, p_180657_3_, p_180657_4_, p_180657_2_))
- if (p_180657_1_.field_72995_K || p_180657_6_.func_77973_b() != Items.field_151097_aZ || p_180657_4_.func_177229_b(field_176492_b) != BlockDoublePlant.EnumBlockHalf.LOWER || !this.func_176489_b(p_180657_1_, p_180657_3_, p_180657_4_, p_180657_2_))
{
super.func_180657_a(p_180657_1_, p_180657_2_, p_180657_3_, p_180657_4_, p_180657_5_, p_180657_6_);
}
@@ -211,8 +208,6 @@
@@ -210,8 +207,6 @@
else
{
p_176489_4_.func_71029_a(StatList.func_188055_a(this));
@@ -54,7 +54,7 @@
return true;
}
}
@@ -283,6 +278,33 @@
@@ -281,6 +276,33 @@
return Block.EnumOffsetType.XZ;
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockDragonEgg.java
+++ ../src-work/minecraft/net/minecraft/block/BlockDragonEgg.java
@@ -49,7 +49,7 @@
@@ -47,7 +47,7 @@
private void func_180683_d(World p_180683_1_, BlockPos p_180683_2_)
{
@@ -9,7 +9,7 @@
{
int i = 32;
@@ -62,7 +62,7 @@
@@ -60,7 +60,7 @@
p_180683_1_.func_175698_g(p_180683_2_);
BlockPos blockpos;
@@ -1,11 +1,11 @@
--- ../src-base/minecraft/net/minecraft/block/BlockDropper.java
+++ ../src-work/minecraft/net/minecraft/block/BlockDropper.java
@@ -44,7 +44,7 @@
@@ -43,7 +43,7 @@
{
ItemStack itemstack = tileentitydispenser.func_70301_a(i);
- if (itemstack != null)
+ if (itemstack != null && net.minecraftforge.items.VanillaInventoryCodeHooks.dropperInsertHook(p_176439_1_, p_176439_2_, tileentitydispenser, i, itemstack))
- if (!itemstack.func_190926_b())
+ if (!itemstack.func_190926_b() && net.minecraftforge.items.VanillaInventoryCodeHooks.dropperInsertHook(p_176439_1_, p_176439_2_, tileentitydispenser, i, itemstack))
{
EnumFacing enumfacing = (EnumFacing)p_176439_1_.func_180495_p(p_176439_2_).func_177229_b(field_176441_a);
BlockPos blockpos = p_176439_2_.func_177972_a(enumfacing);
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockEnchantmentTable.java
+++ ../src-work/minecraft/net/minecraft/block/BlockEnchantmentTable.java
@@ -64,7 +64,7 @@
@@ -63,7 +63,7 @@
{
BlockPos blockpos = p_180655_3_.func_177982_a(i, k, j);
@@ -1,6 +1,15 @@
--- ../src-base/minecraft/net/minecraft/block/BlockFarmland.java
+++ ../src-work/minecraft/net/minecraft/block/BlockFarmland.java
@@ -83,7 +83,7 @@
@@ -70,7 +70,7 @@
public void func_180658_a(World p_180658_1_, BlockPos p_180658_2_, Entity p_180658_3_, float p_180658_4_)
{
- if (!p_180658_1_.field_72995_K && p_180658_1_.field_73012_v.nextFloat() < p_180658_4_ - 0.5F && p_180658_3_ instanceof EntityLivingBase && (p_180658_3_ instanceof EntityPlayer || p_180658_1_.func_82736_K().func_82766_b("mobGriefing")) && p_180658_3_.field_70130_N * p_180658_3_.field_70130_N * p_180658_3_.field_70131_O > 0.512F)
+ if (!p_180658_1_.field_72995_K && p_180658_3_.canTrample(p_180658_1_, this, p_180658_2_, p_180658_4_)) // Forge: Move logic to Entity#canTrample
{
this.func_190970_b(p_180658_1_, p_180658_2_);
}
@@ -93,7 +93,7 @@
private boolean func_176529_d(World p_176529_1_, BlockPos p_176529_2_)
{
Block block = p_176529_1_.func_180495_p(p_176529_2_.func_177984_a()).func_177230_c();
@@ -0,0 +1,49 @@
--- ../src-base/minecraft/net/minecraft/block/BlockFence.java
+++ ../src-work/minecraft/net/minecraft/block/BlockFence.java
@@ -157,7 +157,10 @@
public IBlockState func_176221_a(IBlockState p_176221_1_, IBlockAccess p_176221_2_, BlockPos p_176221_3_)
{
- return p_176221_1_.func_177226_a(field_176526_a, Boolean.valueOf(this.func_176524_e(p_176221_2_, p_176221_3_.func_177978_c()))).func_177226_a(field_176525_b, Boolean.valueOf(this.func_176524_e(p_176221_2_, p_176221_3_.func_177974_f()))).func_177226_a(field_176527_M, Boolean.valueOf(this.func_176524_e(p_176221_2_, p_176221_3_.func_177968_d()))).func_177226_a(field_176528_N, Boolean.valueOf(this.func_176524_e(p_176221_2_, p_176221_3_.func_177976_e())));
+ return p_176221_1_.func_177226_a(field_176526_a, canFenceConnectTo(p_176221_2_, p_176221_3_, EnumFacing.NORTH))
+ .func_177226_a(field_176525_b, canFenceConnectTo(p_176221_2_, p_176221_3_, EnumFacing.EAST))
+ .func_177226_a(field_176527_M, canFenceConnectTo(p_176221_2_, p_176221_3_, EnumFacing.SOUTH))
+ .func_177226_a(field_176528_N, canFenceConnectTo(p_176221_2_, p_176221_3_, EnumFacing.WEST));
}
public IBlockState func_185499_a(IBlockState p_185499_1_, Rotation p_185499_2_)
@@ -192,4 +195,34 @@
{
return new BlockStateContainer(this, new IProperty[] {field_176526_a, field_176525_b, field_176528_N, field_176527_M});
}
+
+ /* ======================================== FORGE START ======================================== */
+
+ @Override
+ public boolean canBeConnectedTo(IBlockAccess world, BlockPos pos, EnumFacing facing)
+ {
+ Block connector = world.func_180495_p(pos.func_177972_a(facing)).func_177230_c();
+
+ if(connector instanceof BlockFence)
+ {
+ if(this != Blocks.field_150386_bk && connector == Blocks.field_150386_bk)
+ {
+ return false;
+ }
+ else if(this == Blocks.field_150386_bk && connector != Blocks.field_150386_bk)
+ {
+ return false;
+ }
+ return true;
+ }
+ return false;
+ }
+
+ private boolean canFenceConnectTo(IBlockAccess world, BlockPos pos, EnumFacing facing)
+ {
+ Block block = world.func_180495_p(pos.func_177972_a(facing)).func_177230_c();
+ return block.canBeConnectedTo(world, pos.func_177972_a(facing), facing.func_176734_d()) || func_176524_e(world, pos.func_177972_a(facing));
+ }
+
+ /* ======================================== FORGE END ======================================== */
}
@@ -0,0 +1,33 @@
--- ../src-base/minecraft/net/minecraft/block/BlockFenceGate.java
+++ ../src-work/minecraft/net/minecraft/block/BlockFenceGate.java
@@ -50,7 +50,7 @@
{
EnumFacing.Axis enumfacing$axis = ((EnumFacing)p_176221_1_.func_177229_b(field_185512_D)).func_176740_k();
- if (enumfacing$axis == EnumFacing.Axis.Z && (p_176221_2_.func_180495_p(p_176221_3_.func_177976_e()).func_177230_c() == Blocks.field_150463_bK || p_176221_2_.func_180495_p(p_176221_3_.func_177974_f()).func_177230_c() == Blocks.field_150463_bK) || enumfacing$axis == EnumFacing.Axis.X && (p_176221_2_.func_180495_p(p_176221_3_.func_177978_c()).func_177230_c() == Blocks.field_150463_bK || p_176221_2_.func_180495_p(p_176221_3_.func_177968_d()).func_177230_c() == Blocks.field_150463_bK))
+ if (enumfacing$axis == EnumFacing.Axis.Z && (canFenceGateConnectTo(p_176221_2_, p_176221_3_, EnumFacing.WEST) || canFenceGateConnectTo(p_176221_2_, p_176221_3_, EnumFacing.EAST)) || enumfacing$axis == EnumFacing.Axis.X && (canFenceGateConnectTo(p_176221_2_, p_176221_3_, EnumFacing.NORTH) || canFenceGateConnectTo(p_176221_2_, p_176221_3_, EnumFacing.SOUTH)))
{
p_176221_1_ = p_176221_1_.func_177226_a(field_176467_M, Boolean.valueOf(true));
}
@@ -175,4 +175,21 @@
{
return new BlockStateContainer(this, new IProperty[] {field_185512_D, field_176466_a, field_176465_b, field_176467_M});
}
+
+ /* ======================================== FORGE START ======================================== */
+
+ @Override
+ public boolean canBeConnectedTo(IBlockAccess world, BlockPos pos, EnumFacing facing)
+ {
+ Block connector = world.func_180495_p(pos.func_177972_a(facing)).func_177230_c();
+ return connector instanceof BlockFence || connector instanceof BlockWall;
+ }
+
+ private boolean canFenceGateConnectTo(IBlockAccess world, BlockPos pos, EnumFacing facing)
+ {
+ Block block = world.func_180495_p(pos.func_177972_a(facing)).func_177230_c();
+ return block.canBeConnectedTo(world, pos.func_177972_a(facing), facing.func_176734_d());
+ }
+
+ /* ======================================== FORGE END ======================================== */
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockFlowerPot.java
+++ ../src-work/minecraft/net/minecraft/block/BlockFlowerPot.java
@@ -151,13 +151,6 @@
@@ -165,13 +165,6 @@
public void func_180663_b(World p_180663_1_, BlockPos p_180663_2_, IBlockState p_180663_3_)
{
@@ -14,7 +14,7 @@
super.func_180663_b(p_180663_1_, p_180663_2_, p_180663_3_);
}
@@ -379,6 +372,31 @@
@@ -392,6 +385,31 @@
return BlockRenderLayer.CUTOUT;
}
@@ -36,7 +36,7 @@
+ return super.removedByPlayer(state, world, pos, player, willHarvest);
+ }
+ @Override
+ public void func_180657_a(World world, EntityPlayer player, BlockPos pos, IBlockState state, TileEntity te, ItemStack tool)
+ public void func_180657_a(World world, EntityPlayer player, BlockPos pos, IBlockState state, @Nullable TileEntity te, ItemStack tool)
+ {
+ super.func_180657_a(world, player, pos, state, te, tool);
+ world.func_175698_g(pos);
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockGrass.java
+++ ../src-work/minecraft/net/minecraft/block/BlockGrass.java
@@ -39,7 +39,7 @@
@@ -38,7 +38,7 @@
{
if (!p_180650_1_.field_72995_K)
{
@@ -9,7 +9,7 @@
{
p_180650_1_.func_175656_a(p_180650_2_, Blocks.field_150346_d.func_176223_P());
}
@@ -59,7 +59,7 @@
@@ -58,7 +58,7 @@
IBlockState iblockstate = p_180650_1_.func_180495_p(blockpos.func_177984_a());
IBlockState iblockstate1 = p_180650_1_.func_180495_p(blockpos);
@@ -18,7 +18,7 @@
{
p_180650_1_.func_175656_a(blockpos, Blocks.field_150349_c.func_176223_P());
}
@@ -98,18 +98,11 @@
@@ -96,18 +96,11 @@
{
if (j >= i / 16)
{
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockHugeMushroom.java
+++ ../src-work/minecraft/net/minecraft/block/BlockHugeMushroom.java
@@ -223,6 +223,20 @@
@@ -221,6 +221,20 @@
return new BlockStateContainer(this, new IProperty[] {field_176380_a});
}
@@ -1,20 +1,15 @@
--- ../src-base/minecraft/net/minecraft/block/BlockIce.java
+++ ../src-work/minecraft/net/minecraft/block/BlockIce.java
@@ -41,14 +41,19 @@
@@ -41,9 +41,14 @@
p_180657_2_.func_71029_a(StatList.func_188055_a(this));
p_180657_2_.func_71020_j(0.025F);
p_180657_2_.func_71020_j(0.005F);
- if (this.func_149700_E() && EnchantmentHelper.func_77506_a(Enchantments.field_185306_r, p_180657_6_) > 0)
+ if (this.canSilkHarvest(p_180657_1_, p_180657_3_, p_180657_4_, p_180657_2_) && EnchantmentHelper.func_77506_a(Enchantments.field_185306_r, p_180657_6_) > 0)
{
- func_180635_a(p_180657_1_, p_180657_3_, this.func_180643_i(p_180657_4_));
+ java.util.List<ItemStack> items = new java.util.ArrayList<ItemStack>();
ItemStack itemstack = this.func_180643_i(p_180657_4_);
if (itemstack != null)
{
- func_180635_a(p_180657_1_, p_180657_3_, itemstack);
+ items.add(itemstack);
}
+ items.add(this.func_180643_i(p_180657_4_));
+
+ net.minecraftforge.event.ForgeEventFactory.fireBlockHarvesting(items, p_180657_1_, p_180657_3_, p_180657_4_, 0, 1.0f, true, p_180657_2_);
+ for (ItemStack is : items)
@@ -22,7 +17,7 @@
}
else
{
@@ -59,7 +64,9 @@
@@ -54,7 +59,9 @@
}
int i = EnchantmentHelper.func_77506_a(Enchantments.field_185308_t, p_180657_6_);
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockLeaves.java
+++ ../src-work/minecraft/net/minecraft/block/BlockLeaves.java
@@ -18,7 +18,7 @@
@@ -17,7 +17,7 @@
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@@ -9,7 +9,7 @@
{
public static final PropertyBool field_176237_a = PropertyBool.func_177716_a("decayable");
public static final PropertyBool field_176236_b = PropertyBool.func_177716_a("check_decay");
@@ -54,9 +54,9 @@
@@ -53,9 +53,9 @@
BlockPos blockpos = p_180663_2_.func_177982_a(j1, k1, l1);
IBlockState iblockstate = p_180663_1_.func_180495_p(blockpos);
@@ -21,7 +21,7 @@
}
}
}
@@ -97,9 +97,9 @@
@@ -96,9 +96,9 @@
IBlockState iblockstate = p_180650_1_.func_180495_p(blockpos$mutableblockpos.func_181079_c(k + i2, l + j2, i1 + k2));
Block block = iblockstate.func_177230_c();
@@ -33,7 +33,7 @@
{
this.field_150128_a[(i2 + 16) * 1024 + (j2 + 16) * 32 + k2 + 16] = -2;
}
@@ -207,40 +207,7 @@
@@ -205,40 +205,7 @@
public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_)
{
@@ -75,7 +75,7 @@
}
protected void func_176234_a(World p_176234_1_, BlockPos p_176234_2_, IBlockState p_176234_3_, int p_176234_4_)
@@ -276,6 +243,49 @@
@@ -274,6 +241,53 @@
public abstract BlockPlanks.EnumType func_176233_b(int p_176233_1_);
@@ -105,7 +105,11 @@
+ }
+
+ if (rand.nextInt(chance) == 0)
+ ret.add(new ItemStack(func_180660_a(state, rand, fortune), 1, func_180651_a(state)));
+ {
+ ItemStack drop = new ItemStack(func_180660_a(state, rand, fortune), 1, func_180651_a(state));
+ if (!drop.func_190926_b())
+ ret.add(drop);
+ }
+
+ chance = 200;
+ if (fortune > 0)
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockLever.java
+++ ../src-work/minecraft/net/minecraft/block/BlockLever.java
@@ -297,6 +297,12 @@
@@ -296,6 +296,12 @@
return new BlockStateContainer(this, new IProperty[] {field_176360_a, field_176359_b});
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockMobSpawner.java
+++ ../src-work/minecraft/net/minecraft/block/BlockMobSpawner.java
@@ -41,10 +41,14 @@
@@ -40,10 +40,14 @@
public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_)
{
super.func_180653_a(p_180653_1_, p_180653_2_, p_180653_3_, p_180653_4_, p_180653_5_);
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockMycelium.java
+++ ../src-work/minecraft/net/minecraft/block/BlockMycelium.java
@@ -40,7 +40,7 @@
@@ -39,7 +39,7 @@
{
if (!p_180650_1_.field_72995_K)
{
@@ -9,7 +9,7 @@
{
p_180650_1_.func_175656_a(p_180650_2_, Blocks.field_150346_d.func_176223_P().func_177226_a(BlockDirt.field_176386_a, BlockDirt.DirtType.DIRT));
}
@@ -54,7 +54,7 @@
@@ -53,7 +53,7 @@
IBlockState iblockstate = p_180650_1_.func_180495_p(blockpos);
IBlockState iblockstate1 = p_180650_1_.func_180495_p(blockpos.func_177984_a());
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockNetherWart.java
+++ ../src-work/minecraft/net/minecraft/block/BlockNetherWart.java
@@ -43,25 +43,28 @@
@@ -42,25 +42,28 @@
public boolean func_180671_f(World p_180671_1_, BlockPos p_180671_2_, IBlockState p_180671_3_)
{
@@ -32,7 +32,7 @@
{
int i = 1;
@@ -108,6 +111,26 @@
@@ -106,6 +109,26 @@
return ((Integer)p_176201_1_.func_177229_b(field_176486_a)).intValue();
}
@@ -1,22 +1,13 @@
--- ../src-base/minecraft/net/minecraft/block/BlockNewLeaf.java
+++ ../src-work/minecraft/net/minecraft/block/BlockNewLeaf.java
@@ -99,7 +99,7 @@
public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, @Nullable TileEntity p_180657_5_, @Nullable ItemStack p_180657_6_)
{
- if (!p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ)
+ if (false && !p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ) //Forge: Noop this
{
p_180657_2_.func_71029_a(StatList.func_188055_a(this));
func_180635_a(p_180657_1_, p_180657_3_, new ItemStack(Item.func_150898_a(this), 1, ((BlockPlanks.EnumType)p_180657_4_.func_177229_b(field_176240_P)).func_176839_a() - 4));
@@ -109,4 +109,10 @@
super.func_180657_a(p_180657_1_, p_180657_2_, p_180657_3_, p_180657_4_, p_180657_5_, p_180657_6_);
}
}
+
+ @Override
+ public List<ItemStack> onSheared(ItemStack item, net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune)
+ public NonNullList<ItemStack> onSheared(ItemStack item, net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune)
+ {
+ return java.util.Arrays.asList(new ItemStack(this, 1, world.func_180495_p(pos).func_177229_b(field_176240_P).func_176839_a() - 4));
+ return NonNullList.func_191197_a(1, new ItemStack(this, 1, world.func_180495_p(pos).func_177229_b(field_176240_P).func_176839_a() - 4));
+ }
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockNote.java
+++ ../src-work/minecraft/net/minecraft/block/BlockNote.java
@@ -65,7 +65,9 @@
@@ -63,7 +63,9 @@
if (tileentity instanceof TileEntityNote)
{
TileEntityNote tileentitynote = (TileEntityNote)tileentity;
@@ -10,7 +10,7 @@
tileentitynote.func_175108_a(p_180639_1_, p_180639_2_);
p_180639_4_.func_71029_a(StatList.field_188087_U);
}
@@ -105,6 +107,10 @@
@@ -103,6 +105,10 @@
public boolean func_189539_a(IBlockState p_189539_1_, World p_189539_2_, BlockPos p_189539_3_, int p_189539_4_, int p_189539_5_)
{
@@ -0,0 +1,15 @@
--- ../src-base/minecraft/net/minecraft/block/BlockObserver.java
+++ ../src-work/minecraft/net/minecraft/block/BlockObserver.java
@@ -145,4 +145,12 @@
{
return this.func_176223_P().func_177226_a(field_176387_N, EnumFacing.func_82600_a(p_176203_1_ & 7));
}
+
+ /* ======================================== FORGE START =====================================*/
+ @Override
+ public void observedNeighborChange(IBlockState observerState, World world, BlockPos observerPos, Block changedBlock, BlockPos changedBlockPos)
+ {
+ func_190962_b(observerState, world, observerPos, changedBlock, changedBlockPos);
+ }
+ /* ========================================= FORGE END ======================================*/
}
@@ -1,7 +1,7 @@
--- ../src-base/minecraft/net/minecraft/block/BlockOldLeaf.java
+++ ../src-work/minecraft/net/minecraft/block/BlockOldLeaf.java
@@ -104,11 +104,16 @@
if (!p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ)
if (!p_180657_1_.field_72995_K && p_180657_6_.func_77973_b() == Items.field_151097_aZ)
{
p_180657_2_.func_71029_a(StatList.func_188055_a(this));
- func_180635_a(p_180657_1_, p_180657_3_, new ItemStack(Item.func_150898_a(this), 1, ((BlockPlanks.EnumType)p_180657_4_.func_177229_b(field_176239_P)).func_176839_a()));
@@ -13,8 +13,8 @@
}
+
+ @Override
+ public List<ItemStack> onSheared(ItemStack item, net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune)
+ public NonNullList<ItemStack> onSheared(ItemStack item, net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune)
+ {
+ return java.util.Arrays.asList(new ItemStack(this, 1, world.func_180495_p(pos).func_177229_b(field_176239_P).func_176839_a()));
+ return NonNullList.func_191197_a(1, new ItemStack(this, 1, world.func_180495_p(pos).func_177229_b(field_176239_P).func_176839_a()));
+ }
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockOre.java
+++ ../src-work/minecraft/net/minecraft/block/BlockOre.java
@@ -61,34 +61,39 @@
@@ -59,34 +59,39 @@
public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_)
{
super.func_180653_a(p_180653_1_, p_180653_2_, p_180653_3_, p_180653_4_, p_180653_5_);
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockPane.java
+++ ../src-work/minecraft/net/minecraft/block/BlockPane.java
@@ -106,7 +106,10 @@
@@ -111,7 +111,10 @@
public IBlockState func_176221_a(IBlockState p_176221_1_, IBlockAccess p_176221_2_, BlockPos p_176221_3_)
{
@@ -11,16 +11,26 @@
+ .func_177226_a(field_176242_M, canPaneConnectTo(p_176221_2_, p_176221_3_, EnumFacing.EAST));
}
@Nullable
@@ -184,4 +187,11 @@
public Item func_180660_a(IBlockState p_180660_1_, Random p_180660_2_, int p_180660_3_)
@@ -188,4 +191,21 @@
{
return new BlockStateContainer(this, new IProperty[] {field_176241_b, field_176242_M, field_176244_O, field_176243_N});
}
+
+ /* ======================================== FORGE START ======================================== */
+
+ @Override
+ public boolean canBeConnectedTo(IBlockAccess world, BlockPos pos, EnumFacing facing)
+ {
+ Block connector = world.func_180495_p(pos.func_177972_a(facing)).func_177230_c();
+ return connector instanceof BlockPane;
+ }
+
+ public boolean canPaneConnectTo(IBlockAccess world, BlockPos pos, EnumFacing dir)
+ {
+ BlockPos off = pos.func_177972_a(dir);
+ IBlockState state = world.func_180495_p(off);
+ return func_150098_a(state.func_177230_c()) || state.isSideSolid(world, off, dir.func_176734_d());
+ IBlockState state = world.func_180495_p(pos.func_177972_a(dir));
+ return state.func_177230_c().canBeConnectedTo(world, pos.func_177972_a(dir), dir.func_176734_d()) || func_150098_a(state.func_177230_c()) || state.isSideSolid(world, pos.func_177972_a(dir), dir.func_176734_d());
+ }
+
+ /* ======================================== FORGE END ======================================== */
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockPistonBase.java
+++ ../src-work/minecraft/net/minecraft/block/BlockPistonBase.java
@@ -236,7 +236,7 @@
@@ -240,7 +240,7 @@
}
}
@@ -9,7 +9,7 @@
{
this.func_176319_a(p_189539_2_, p_189539_3_, enumfacing, false);
}
@@ -322,7 +322,7 @@
@@ -306,7 +306,7 @@
return false;
}
@@ -18,7 +18,7 @@
}
else
{
@@ -368,7 +368,9 @@
@@ -352,7 +352,9 @@
{
BlockPos blockpos1 = (BlockPos)list2.get(j);
IBlockState iblockstate = p_176319_1_.func_180495_p(blockpos1);
@@ -26,6 +26,18 @@
+ // Forge: With our change to how snowballs are dropped this needs to disallow to mimic vanilla behavior.
+ float chance = iblockstate.func_177230_c() instanceof BlockSnow ? -1.0f : 1.0f;
+ iblockstate.func_177230_c().func_180653_a(p_176319_1_, blockpos1, iblockstate, chance, 0);
p_176319_1_.func_175698_g(blockpos1);
p_176319_1_.func_180501_a(blockpos1, Blocks.field_150350_a.func_176223_P(), 4);
--k;
aiblockstate[k] = iblockstate;
@@ -432,4 +434,11 @@
{
return new BlockStateContainer(this, new IProperty[] {field_176387_N, field_176320_b});
}
+
+ /* ======================================== FORGE START =====================================*/
+ public boolean rotateBlock(World world, BlockPos pos, EnumFacing axis)
+ {
+ IBlockState state = world.func_180495_p(pos);
+ return !state.func_177229_b(field_176320_b) && super.rotateBlock(world, pos, axis);
+ }
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockPistonMoving.java
+++ ../src-work/minecraft/net/minecraft/block/BlockPistonMoving.java
@@ -112,7 +112,7 @@
@@ -115,7 +115,7 @@
public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_)
{
@@ -9,15 +9,15 @@
{
TileEntityPiston tileentitypiston = this.func_185589_c(p_180653_1_, p_180653_2_);
@@ -122,6 +122,7 @@
@@ -125,6 +125,7 @@
iblockstate.func_177230_c().func_176226_b(p_180653_1_, p_180653_2_, iblockstate, 0);
}
}
+ super.func_180653_a(p_180653_1_, p_180653_2_, p_180653_3_, 1, p_180653_5_); // mimic vanilla behavior from above and ignore chance
}
public RayTraceResult func_180636_a(IBlockState p_180636_1_, World p_180636_2_, BlockPos p_180636_3_, Vec3d p_180636_4_, Vec3d p_180636_5_)
@@ -195,4 +196,16 @@
@Nullable
@@ -208,4 +209,16 @@
{
return new BlockStateContainer(this, new IProperty[] {field_176426_a, field_176425_b});
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockRailBase.java
+++ ../src-work/minecraft/net/minecraft/block/BlockRailBase.java
@@ -32,7 +32,7 @@
@@ -33,7 +33,7 @@
public static boolean func_176563_d(IBlockState p_176563_0_)
{
Block block = p_176563_0_.func_177230_c();
@@ -9,7 +9,16 @@
}
protected BlockRailBase(boolean p_i45389_1_)
@@ -66,7 +66,7 @@
@@ -56,7 +56,7 @@
public AxisAlignedBB func_185496_a(IBlockState p_185496_1_, IBlockAccess p_185496_2_, BlockPos p_185496_3_)
{
- BlockRailBase.EnumRailDirection blockrailbase$enumraildirection = p_185496_1_.func_177230_c() == this ? (BlockRailBase.EnumRailDirection)p_185496_1_.func_177229_b(this.func_176560_l()) : null;
+ BlockRailBase.EnumRailDirection blockrailbase$enumraildirection = p_185496_1_.func_177230_c() == this ? getRailDirection(p_185496_2_, p_185496_3_, p_185496_1_, null) : null;
return blockrailbase$enumraildirection != null && blockrailbase$enumraildirection.func_177018_c() ? field_190959_b : field_185590_a;
}
@@ -67,7 +67,7 @@
public boolean func_176196_c(World p_176196_1_, BlockPos p_176196_2_)
{
@@ -18,8 +27,12 @@
}
public void func_176213_c(World p_176213_1_, BlockPos p_176213_2_, IBlockState p_176213_3_)
@@ -89,24 +89,24 @@
BlockRailBase.EnumRailDirection blockrailbase$enumraildirection = (BlockRailBase.EnumRailDirection)p_189540_1_.func_177229_b(this.func_176560_l());
@@ -87,27 +87,27 @@
{
if (!p_189540_2_.field_72995_K)
{
- BlockRailBase.EnumRailDirection blockrailbase$enumraildirection = (BlockRailBase.EnumRailDirection)p_189540_1_.func_177229_b(this.func_176560_l());
+ BlockRailBase.EnumRailDirection blockrailbase$enumraildirection = getRailDirection(p_189540_2_, p_189540_3_, p_189540_2_.func_180495_p(p_189540_3_), null);
boolean flag = false;
- if (!p_189540_2_.func_180495_p(p_189540_3_.func_177977_b()).func_185896_q())
@@ -48,8 +61,20 @@
{
flag = true;
}
@@ -161,6 +161,98 @@
@@ -148,7 +148,7 @@
{
super.func_180663_b(p_180663_1_, p_180663_2_, p_180663_3_);
- if (((BlockRailBase.EnumRailDirection)p_180663_3_.func_177229_b(this.func_176560_l())).func_177018_c())
+ if (getRailDirection(p_180663_1_, p_180663_2_, p_180663_3_, null).func_177018_c())
{
p_180663_1_.func_175685_c(p_180663_2_.func_177984_a(), this, false);
}
@@ -160,8 +160,101 @@
}
}
+ //Forge: Use getRailDirection(IBlockAccess, BlockPos, IBlockState, EntityMinecart) for enhanced ability
public abstract IProperty<BlockRailBase.EnumRailDirection> func_176560_l();
+ /* ======================================== FORGE START =====================================*/
@@ -147,7 +172,7 @@
public static enum EnumRailDirection implements IStringSerializable
{
NORTH_SOUTH(0, "north_south"),
@@ -231,6 +323,7 @@
@@ -232,6 +325,7 @@
private IBlockState field_180366_e;
private final boolean field_150656_f;
private final List<BlockPos> field_150657_g = Lists.<BlockPos>newArrayList();
@@ -155,7 +180,7 @@
public Rail(World p_i45739_2_, BlockPos p_i45739_3_, IBlockState p_i45739_4_)
{
@@ -238,8 +331,9 @@
@@ -239,8 +333,9 @@
this.field_180367_c = p_i45739_3_;
this.field_180366_e = p_i45739_4_;
this.field_180365_d = (BlockRailBase)p_i45739_4_.func_177230_c();
@@ -167,7 +192,7 @@
this.func_180360_a(blockrailbase$enumraildirection);
}
@@ -431,7 +525,7 @@
@@ -432,7 +527,7 @@
}
}
@@ -176,7 +201,7 @@
{
if (BlockRailBase.func_176562_d(this.field_150660_b, blockpos.func_177984_a()))
{
@@ -444,7 +538,7 @@
@@ -445,7 +540,7 @@
}
}
@@ -185,7 +210,7 @@
{
if (BlockRailBase.func_176562_d(this.field_150660_b, blockpos3.func_177984_a()))
{
@@ -587,7 +681,7 @@
@@ -588,7 +683,7 @@
}
}
@@ -194,7 +219,7 @@
{
if (BlockRailBase.func_176562_d(this.field_150660_b, blockpos.func_177984_a()))
{
@@ -600,7 +694,7 @@
@@ -601,7 +696,7 @@
}
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockRedstoneComparator.java
+++ ../src-work/minecraft/net/minecraft/block/BlockRedstoneComparator.java
@@ -312,6 +312,21 @@
@@ -311,6 +311,21 @@
return this.func_176223_P().func_177226_a(field_185512_D, p_180642_8_.func_174811_aO().func_176734_d()).func_177226_a(field_176464_a, Boolean.valueOf(false)).func_177226_a(field_176463_b, BlockRedstoneComparator.Mode.COMPARE);
}
@@ -9,7 +9,7 @@
+ {
+ if (pos.func_177956_o() == neighbor.func_177956_o() && world instanceof World)
+ {
+ func_189540_a(world.func_180495_p(pos), (World)world, pos, world.func_180495_p(neighbor).func_177230_c());
+ func_189540_a(world.func_180495_p(pos), (World)world, pos, world.func_180495_p(neighbor).func_177230_c(), neighbor);
+ }
+ }
+
@@ -4,8 +4,32 @@
{
EnumFacing enumfacing = (EnumFacing)p_176400_3_.func_177229_b(field_185512_D);
BlockPos blockpos = p_176400_2_.func_177972_a(enumfacing.func_176734_d());
+ if(net.minecraftforge.event.ForgeEventFactory.onNeighborNotify(p_176400_1_, p_176400_2_, p_176400_1_.func_180495_p(p_176400_2_), java.util.EnumSet.of(enumfacing.func_176734_d())).isCanceled())
+ if(net.minecraftforge.event.ForgeEventFactory.onNeighborNotify(p_176400_1_, p_176400_2_, p_176400_1_.func_180495_p(p_176400_2_), java.util.EnumSet.of(enumfacing.func_176734_d()), false).isCanceled())
+ return;
p_176400_1_.func_180496_d(blockpos, this);
p_176400_1_.func_190524_a(blockpos, this, p_176400_2_);
p_176400_1_.func_175695_a(blockpos, this, enumfacing);
}
@@ -275,4 +277,23 @@
{
return BlockRenderLayer.CUTOUT;
}
+
+ /* ======================================== FORGE START =====================================*/
+ @Override
+ public boolean rotateBlock(World world, BlockPos pos, EnumFacing axis)
+ {
+ if (super.rotateBlock(world, pos, axis))
+ {
+ IBlockState state = world.func_180495_p(pos);
+ state = func_180675_k(state);
+ world.func_175656_a(pos, state);
+
+ if (func_176404_e(world, pos, state))
+ {
+ world.func_175684_a(pos, this, 1);
+ }
+ return true;
+ }
+ return false;
+ }
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockRedstoneOre.java
+++ ../src-work/minecraft/net/minecraft/block/BlockRedstoneOre.java
@@ -94,12 +94,16 @@
@@ -92,12 +92,16 @@
public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_)
{
super.func_180653_a(p_180653_1_, p_180653_2_, p_180653_3_, p_180653_4_, p_180653_5_);
@@ -1,11 +1,11 @@
--- ../src-base/minecraft/net/minecraft/block/BlockRedstoneTorch.java
+++ ../src-work/minecraft/net/minecraft/block/BlockRedstoneTorch.java
@@ -24,7 +24,7 @@
@@ -23,7 +23,7 @@
public class BlockRedstoneTorch extends BlockTorch
{
- private static final Map<World, List<BlockRedstoneTorch.Toggle>> field_150112_b = Maps.<World, List<BlockRedstoneTorch.Toggle>>newHashMap();
+ private static final Map<World, List<BlockRedstoneTorch.Toggle>> field_150112_b = new java.util.WeakHashMap<World, List<BlockRedstoneTorch.Toggle>>(); // FORGE - fix vanilla MC-101233
+ private static final Map<World, List<BlockRedstoneTorch.Toggle>> field_150112_b = new java.util.WeakHashMap<World, List<Toggle>>(); // FORGE - fix vanilla MC-101233
private final boolean field_150113_a;
private boolean func_176598_a(World p_176598_1_, BlockPos p_176598_2_, boolean p_176598_3_)
@@ -19,7 +19,7 @@
{
if (iblockstate.func_185898_k())
{
@@ -409,21 +409,16 @@
@@ -408,21 +408,16 @@
IBlockState iblockstate = p_176339_1_.func_180495_p(blockpos);
boolean flag = iblockstate.func_185915_l();
boolean flag1 = p_176339_1_.func_180495_p(p_176339_2_.func_177984_a()).func_185915_l();
@@ -44,12 +44,12 @@
Block block = p_176343_0_.func_177230_c();
if (block == Blocks.field_150488_af)
@@ -437,7 +432,7 @@
@@ -436,7 +431,7 @@
}
else
{
- return p_176343_0_.func_185897_m() && p_176343_1_ != null;
+ return p_176343_0_.func_177230_c().canConnectRedstone(p_176343_0_, world, pos, p_176343_1_);
- return Blocks.field_190976_dk == p_176343_0_.func_177230_c() ? p_176343_1_ == p_176343_0_.func_177229_b(BlockObserver.field_176387_N) : p_176343_0_.func_185897_m() && p_176343_1_ != null;
+ return Blocks.field_190976_dk == p_176343_0_.func_177230_c() ? p_176343_1_ == p_176343_0_.func_177229_b(BlockObserver.field_176387_N) : p_176343_0_.func_177230_c().canConnectRedstone(p_176343_0_, world, pos, p_176343_1_);
}
}
@@ -38,7 +38,7 @@
if (block == this)
{
@@ -165,6 +171,17 @@
@@ -164,6 +170,17 @@
return ((Integer)p_176201_1_.func_177229_b(field_176355_a)).intValue();
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockSkull.java
+++ ../src-work/minecraft/net/minecraft/block/BlockSkull.java
@@ -118,10 +118,6 @@
@@ -126,10 +126,6 @@
return new ItemStack(Items.field_151144_bL, 1, i);
}
@@ -11,7 +11,7 @@
public void func_176208_a(World p_176208_1_, BlockPos p_176208_2_, IBlockState p_176208_3_, EntityPlayer p_176208_4_)
{
if (p_176208_4_.field_71075_bZ.field_75098_d)
@@ -129,13 +125,18 @@
@@ -137,13 +133,18 @@
p_176208_3_ = p_176208_3_.func_177226_a(field_176417_b, Boolean.valueOf(true));
p_176208_1_.func_180501_a(p_176208_2_, p_176208_3_, 4);
}
@@ -31,7 +31,7 @@
{
if (!((Boolean)p_180663_3_.func_177229_b(field_176417_b)).booleanValue())
{
@@ -144,7 +145,7 @@
@@ -152,7 +153,7 @@
if (tileentity instanceof TileEntitySkull)
{
TileEntitySkull tileentityskull = (TileEntitySkull)tileentity;
@@ -40,7 +40,7 @@
if (tileentityskull.func_145904_a() == 3 && tileentityskull.func_152108_a() != null)
{
@@ -154,12 +155,11 @@
@@ -162,12 +163,11 @@
itemstack.func_77978_p().func_74782_a("SkullOwner", nbttagcompound);
}
@@ -54,4 +54,4 @@
+ return ret;
}
@Nullable
public Item func_180660_a(IBlockState p_180660_1_, Random p_180660_2_, int p_180660_3_)
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockSlab.java
+++ ../src-work/minecraft/net/minecraft/block/BlockSlab.java
@@ -50,6 +50,19 @@
@@ -56,6 +56,19 @@
return this.func_176552_j();
}
@@ -20,7 +20,7 @@
public IBlockState func_180642_a(World p_180642_1_, BlockPos p_180642_2_, EnumFacing p_180642_3_, float p_180642_4_, float p_180642_5_, float p_180642_6_, int p_180642_7_, EntityLivingBase p_180642_8_)
{
IBlockState iblockstate = super.func_180642_a(p_180642_1_, p_180642_2_, p_180642_3_, p_180642_4_, p_180642_5_, p_180642_6_, p_180642_7_, p_180642_8_).func_177226_a(field_176554_a, BlockSlab.EnumBlockHalf.BOTTOM);
@@ -77,13 +90,14 @@
@@ -83,13 +96,14 @@
{
return false;
}
@@ -4,11 +4,11 @@
{
IBlockState iblockstate = p_176196_1_.func_180495_p(p_176196_2_.func_177977_b());
Block block = iblockstate.func_177230_c();
- return block != Blocks.field_150432_aD && block != Blocks.field_150403_cj ? (iblockstate.func_185904_a() == Material.field_151584_j ? true : (block == this && ((Integer)iblockstate.func_177229_b(field_176315_a)).intValue() >= 7 ? true : iblockstate.func_185914_p() && iblockstate.func_185904_a().func_76230_c())) : false;
+ return block != Blocks.field_150432_aD && block != Blocks.field_150403_cj ? (iblockstate.func_177230_c().isLeaves(iblockstate, p_176196_1_, p_176196_2_.func_177977_b()) ? true : (block == this && ((Integer)iblockstate.func_177229_b(field_176315_a)).intValue() >= 7 ? true : iblockstate.func_185914_p() && iblockstate.func_185904_a().func_76230_c())) : false;
- return block != Blocks.field_150432_aD && block != Blocks.field_150403_cj ? (iblockstate.func_185904_a() == Material.field_151584_j ? true : (block == this && ((Integer)iblockstate.func_177229_b(field_176315_a)).intValue() == 8 ? true : iblockstate.func_185914_p() && iblockstate.func_185904_a().func_76230_c())) : false;
+ return block != Blocks.field_150432_aD && block != Blocks.field_150403_cj ? (iblockstate.func_177230_c().isLeaves(iblockstate, p_176196_1_, p_176196_2_.func_177977_b()) ? true : (block == this && ((Integer)iblockstate.func_177229_b(field_176315_a)).intValue() == 8 ? true : iblockstate.func_185914_p() && iblockstate.func_185904_a().func_76230_c())) : false;
}
public void func_189540_a(IBlockState p_189540_1_, World p_189540_2_, BlockPos p_189540_3_, Block p_189540_4_)
public void func_189540_a(IBlockState p_189540_1_, World p_189540_2_, BlockPos p_189540_3_, Block p_189540_4_, BlockPos p_189540_5_)
@@ -87,7 +87,6 @@
{
if (!this.func_176196_c(p_176314_1_, p_176314_2_))
@@ -19,7 +19,7 @@
}
@@ -99,9 +98,8 @@
public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, @Nullable TileEntity p_180657_5_, @Nullable ItemStack p_180657_6_)
public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, @Nullable TileEntity p_180657_5_, ItemStack p_180657_6_)
{
- func_180635_a(p_180657_1_, p_180657_3_, new ItemStack(Items.field_151126_ay, ((Integer)p_180657_4_.func_177229_b(field_176315_a)).intValue() + 1, 0));
+ super.func_180657_a(p_180657_1_, p_180657_2_, p_180657_3_, p_180657_4_, p_180657_5_, p_180657_6_);
@@ -27,8 +27,8 @@
- p_180657_2_.func_71029_a(StatList.func_188055_a(this));
}
@Nullable
@@ -112,14 +110,13 @@
public Item func_180660_a(IBlockState p_180660_1_, Random p_180660_2_, int p_180660_3_)
@@ -111,14 +109,13 @@
public int func_149745_a(Random p_149745_1_)
{
@@ -44,7 +44,7 @@
p_180650_1_.func_175698_g(p_180650_2_);
}
}
@@ -153,6 +150,8 @@
@@ -152,6 +149,8 @@
return ((Integer)p_176201_1_.func_177229_b(field_176315_a)).intValue() - 1;
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockStairs.java
+++ ../src-work/minecraft/net/minecraft/block/BlockStairs.java
@@ -445,6 +445,29 @@
@@ -447,6 +447,29 @@
return new BlockStateContainer(this, new IProperty[] {field_176309_a, field_176308_b, field_176310_M});
}
@@ -18,44 +18,34 @@
}
public boolean func_176200_f(IBlockAccess p_176200_1_, BlockPos p_176200_2_)
@@ -53,7 +53,7 @@
@Nullable
@@ -52,7 +52,7 @@
public Item func_180660_a(IBlockState p_180660_1_, Random p_180660_2_, int p_180660_3_)
{
- return p_180660_2_.nextInt(8) == 0 ? Items.field_151014_N : null;
- return p_180660_2_.nextInt(8) == 0 ? Items.field_151014_N : Items.field_190931_a;
+ return null;
}
public int func_149679_a(int p_149679_1_, Random p_149679_2_)
@@ -63,7 +63,7 @@
public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, @Nullable TileEntity p_180657_5_, @Nullable ItemStack p_180657_6_)
{
- if (!p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ)
+ if (false && !p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ) // Forge: Noop Taken care of by IShearable
{
p_180657_2_.func_71029_a(StatList.func_188055_a(this));
func_180635_a(p_180657_1_, p_180657_3_, new ItemStack(Blocks.field_150329_H, 1, ((BlockTallGrass.EnumType)p_180657_4_.func_177229_b(field_176497_a)).func_177044_a()));
@@ -183,4 +183,22 @@
@@ -181,4 +181,21 @@
}
}
}
+
+ @Override public boolean isShearable(ItemStack item, IBlockAccess world, BlockPos pos){ return true; }
+ @Override
+ public List<ItemStack> onSheared(ItemStack item, IBlockAccess world, BlockPos pos, int fortune)
+ public NonNullList<ItemStack> onSheared(ItemStack item, IBlockAccess world, BlockPos pos, int fortune)
+ {
+ List<ItemStack> ret = new java.util.ArrayList<ItemStack>();
+ ret.add(new ItemStack(Blocks.field_150329_H, 1, ((BlockTallGrass.EnumType)world.func_180495_p(pos).func_177229_b(field_176497_a)).func_177044_a()));
+ return ret;
+ return NonNullList.func_191197_a(1, new ItemStack(Blocks.field_150329_H, 1, ((BlockTallGrass.EnumType)world.func_180495_p(pos).func_177229_b(field_176497_a)).func_177044_a()));
+ }
+ @Override
+ public List<ItemStack> getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune)
+ public NonNullList<ItemStack> getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune)
+ {
+ List<ItemStack> ret = new java.util.ArrayList<ItemStack>();
+ if (RANDOM.nextInt(8) != 0) return ret;
+ if (RANDOM.nextInt(8) != 0) return NonNullList.func_191196_a();
+ ItemStack seed = net.minecraftforge.common.ForgeHooks.getGrassSeed(RANDOM, fortune);
+ if (seed != null) ret.add(seed);
+ return ret;
+ if (!seed.func_190926_b())
+ return NonNullList.func_191197_a(1, seed);
+ else
+ return NonNullList.func_191196_a();
+ }
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/BlockTrapDoor.java
+++ ../src-work/minecraft/net/minecraft/block/BlockTrapDoor.java
@@ -240,6 +240,18 @@
@@ -244,6 +244,18 @@
return new BlockStateContainer(this, new IProperty[] {field_176284_a, field_176283_b, field_176285_M});
}
@@ -9,16 +9,7 @@
{
public static final PropertyBool field_176277_a = PropertyBool.func_177716_a("up");
public static final PropertyBool field_176273_b = PropertyBool.func_177716_a("north");
@@ -345,7 +345,7 @@
public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, @Nullable TileEntity p_180657_5_, @Nullable ItemStack p_180657_6_)
{
- if (!p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ)
+ if (false && !p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ) // Forge: Noop, Covered by IShearable
{
p_180657_2_.func_71029_a(StatList.func_188055_a(this));
func_180635_a(p_180657_1_, p_180657_3_, new ItemStack(Blocks.field_150395_bd, 1, 0));
@@ -460,4 +460,14 @@
@@ -459,4 +459,14 @@
return i;
}
@@ -0,0 +1,41 @@
--- ../src-base/minecraft/net/minecraft/block/BlockWall.java
+++ ../src-work/minecraft/net/minecraft/block/BlockWall.java
@@ -154,10 +154,10 @@
public IBlockState func_176221_a(IBlockState p_176221_1_, IBlockAccess p_176221_2_, BlockPos p_176221_3_)
{
- boolean flag = this.func_176253_e(p_176221_2_, p_176221_3_.func_177978_c());
- boolean flag1 = this.func_176253_e(p_176221_2_, p_176221_3_.func_177974_f());
- boolean flag2 = this.func_176253_e(p_176221_2_, p_176221_3_.func_177968_d());
- boolean flag3 = this.func_176253_e(p_176221_2_, p_176221_3_.func_177976_e());
+ boolean flag = canWallConnectTo(p_176221_2_, p_176221_3_, EnumFacing.NORTH);
+ boolean flag1 = canWallConnectTo(p_176221_2_, p_176221_3_, EnumFacing.EAST);
+ boolean flag2 = canWallConnectTo(p_176221_2_, p_176221_3_, EnumFacing.SOUTH);
+ boolean flag3 = canWallConnectTo(p_176221_2_, p_176221_3_, EnumFacing.WEST);
boolean flag4 = flag && !flag1 && flag2 && !flag3 || !flag && flag1 && !flag2 && flag3;
return p_176221_1_.func_177226_a(field_176256_a, Boolean.valueOf(!flag4 || !p_176221_2_.func_175623_d(p_176221_3_.func_177984_a()))).func_177226_a(field_176254_b, Boolean.valueOf(flag)).func_177226_a(field_176257_M, Boolean.valueOf(flag1)).func_177226_a(field_176258_N, Boolean.valueOf(flag2)).func_177226_a(field_176259_O, Boolean.valueOf(flag3));
}
@@ -167,6 +167,23 @@
return new BlockStateContainer(this, new IProperty[] {field_176256_a, field_176254_b, field_176257_M, field_176259_O, field_176258_N, field_176255_P});
}
+ /* ======================================== FORGE START ======================================== */
+
+ @Override
+ public boolean canBeConnectedTo(IBlockAccess world, BlockPos pos, EnumFacing facing)
+ {
+ Block connector = world.func_180495_p(pos.func_177972_a(facing)).func_177230_c();
+ return connector instanceof BlockWall || connector instanceof BlockFenceGate;
+ }
+
+ private boolean canWallConnectTo(IBlockAccess world, BlockPos pos, EnumFacing facing)
+ {
+ Block block = world.func_180495_p(pos.func_177972_a(facing)).func_177230_c();
+ return block.canBeConnectedTo(world, pos.func_177972_a(facing), facing.func_176734_d()) || func_176253_e(world, pos.func_177972_a(facing));
+ }
+
+ /* ======================================== FORGE END ======================================== */
+
public static enum EnumType implements IStringSerializable
{
NORMAL(0, "cobblestone", "normal"),
@@ -0,0 +1,22 @@
--- ../src-base/minecraft/net/minecraft/block/BlockWeb.java
+++ ../src-work/minecraft/net/minecraft/block/BlockWeb.java
@@ -20,7 +20,7 @@
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
-public class BlockWeb extends Block
+public class BlockWeb extends Block implements net.minecraftforge.common.IShearable
{
public BlockWeb()
{
@@ -77,4 +77,10 @@
super.func_180657_a(p_180657_1_, p_180657_2_, p_180657_3_, p_180657_4_, p_180657_5_, p_180657_6_);
}
}
+
+ @Override public boolean isShearable(ItemStack item, IBlockAccess world, BlockPos pos) { return true; }
+ @Override
+ public java.util.List<ItemStack> onSheared(ItemStack item, IBlockAccess world, BlockPos pos, int fortune) {
+ return com.google.common.collect.Lists.newArrayList(new ItemStack(Item.func_150898_a(this)));
+ }
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/block/state/BlockStateContainer.java
+++ ../src-work/minecraft/net/minecraft/block/state/BlockStateContainer.java
@@ -57,12 +57,22 @@
@@ -59,12 +59,22 @@
public BlockStateContainer(Block p_i45663_1_, IProperty<?>... p_i45663_2_)
{
@@ -8,7 +8,7 @@
+ this(p_i45663_1_, p_i45663_2_, null);
+ }
+
+ protected StateImplementation createState(Block block, ImmutableMap<IProperty<?>, Comparable<?>> properties, ImmutableMap<net.minecraftforge.common.property.IUnlistedProperty<?>, com.google.common.base.Optional<?>> unlistedProperties)
+ protected StateImplementation createState(Block block, ImmutableMap<IProperty<?>, Comparable<?>> properties, @Nullable ImmutableMap<net.minecraftforge.common.property.IUnlistedProperty<?>, com.google.common.base.Optional<?>> unlistedProperties)
+ {
+ return new StateImplementation(block, properties);
+ }
@@ -26,7 +26,7 @@
map.put(iproperty.func_177701_a(), iproperty);
}
@@ -73,7 +83,7 @@
@@ -75,7 +85,7 @@
for (List < Comparable<? >> list : Cartesian.func_179321_a(this.func_177620_e()))
{
Map < IProperty<?>, Comparable<? >> map1 = MapPopulator. < IProperty<?>, Comparable<? >> func_179400_b(this.field_177624_d.values(), list);
@@ -35,7 +35,7 @@
map2.put(map1, blockstatecontainer$stateimplementation);
list1.add(blockstatecontainer$stateimplementation);
}
@@ -165,6 +175,13 @@
@@ -170,6 +180,13 @@
this.field_177237_b = p_i45660_2_;
}
@@ -49,9 +49,9 @@
public Collection < IProperty<? >> func_177227_a()
{
return Collections. < IProperty<? >> unmodifiableCollection(this.field_177237_b.keySet());
@@ -445,5 +462,86 @@
@@ -468,5 +485,86 @@
{
this.field_177239_a.func_189540_a(this, p_189546_1_, p_189546_2_, p_189546_3_);
return this.field_177239_a.func_176214_u(this);
}
+
+ //Forge Start
@@ -14,14 +14,17 @@
@SideOnly(Side.CLIENT)
boolean func_185895_e();
@@ -92,5 +96,10 @@
@@ -95,8 +99,13 @@
RayTraceResult func_185910_a(World p_185910_1_, BlockPos p_185910_2_, Vec3d p_185910_3_, Vec3d p_185910_4_);
+ @Deprecated // Forge: Use isSideSolid(IBlockAccess, BlockPos, EnumFacing.UP) instead
boolean func_185896_q();
+
+ //Forge added functions
+ boolean doesSideBlockRendering(IBlockAccess world, BlockPos pos, EnumFacing side);
+ boolean isSideSolid(IBlockAccess world, BlockPos pos, EnumFacing side);
}
+
Vec3d func_191059_e(IBlockAccess p_191059_1_, BlockPos p_191059_2_);
boolean func_191058_s();
@@ -8,12 +8,12 @@
this.field_71459_aj = p_i45547_1_.field_178741_d.field_178756_a;
this.field_71443_c = p_i45547_1_.field_178743_b.field_178764_a > 0 ? p_i45547_1_.field_178743_b.field_178764_a : 1;
this.field_71440_d = p_i45547_1_.field_178743_b.field_178762_b > 0 ? p_i45547_1_.field_178743_b.field_178762_b : 1;
@@ -437,10 +436,10 @@
@@ -438,10 +437,10 @@
this.field_110451_am = new SimpleReloadableResourceManager(this.field_110452_an);
this.field_135017_as = new LanguageManager(this.field_110452_an, this.field_71474_y.field_74363_ab);
this.field_110451_am.func_110542_a(this.field_135017_as);
- this.func_110436_a();
+ net.minecraftforge.fml.client.FMLClientHandler.instance().beginMinecraftLoading(this, this.field_110449_ao, this.field_110451_am);
+ net.minecraftforge.fml.client.FMLClientHandler.instance().beginMinecraftLoading(this, this.field_110449_ao, this.field_110451_am, this.field_110452_an);
this.field_71446_o = new TextureManager(this.field_110451_am);
this.field_110451_am.func_110542_a(this.field_71446_o);
- this.func_180510_a(this.field_71446_o);
@@ -21,7 +21,7 @@
this.field_152350_aA = new SkinManager(this.field_71446_o, new File(this.field_110446_Y, "skins"), this.field_152355_az);
this.field_71469_aa = new AnvilSaveConverter(new File(this.field_71412_D, "saves"), this.field_184131_U);
this.field_147127_av = new SoundHandler(this.field_110451_am, this.field_71474_y);
@@ -465,7 +464,7 @@
@@ -466,7 +465,7 @@
{
try
{
@@ -30,7 +30,7 @@
}
catch (Exception exception)
{
@@ -474,6 +473,8 @@
@@ -475,6 +474,8 @@
}
});
this.field_71417_B = new MouseHelper();
@@ -39,7 +39,7 @@
this.func_71361_d("Pre startup");
GlStateManager.func_179098_w();
GlStateManager.func_179103_j(7425);
@@ -487,19 +488,24 @@
@@ -488,19 +489,24 @@
GlStateManager.func_179096_D();
GlStateManager.func_179128_n(5888);
this.func_71361_d("Startup");
@@ -65,7 +65,7 @@
this.field_71460_t = new EntityRenderer(this, this.field_110451_am);
this.field_110451_am.func_110542_a(this.field_71460_t);
this.field_175618_aM = new BlockRendererDispatcher(this.field_175617_aL.func_174954_c(), this.field_184127_aH);
@@ -509,23 +515,27 @@
@@ -510,23 +516,27 @@
this.field_71458_u = new GuiAchievement(this);
GlStateManager.func_179083_b(0, 0, this.field_71443_c, this.field_71440_d);
this.field_71452_i = new ParticleManager(this.field_71441_e, this.field_71446_o);
@@ -96,7 +96,7 @@
if (this.field_71474_y.field_74353_u && !this.field_71431_Q)
{
this.func_71352_k();
@@ -697,21 +707,23 @@
@@ -698,21 +708,23 @@
File file2 = new File(file1, "crash-" + (new SimpleDateFormat("yyyy-MM-dd_HH.mm.ss")).format(new Date()) + "-client.txt");
Bootstrap.func_179870_a(p_71377_1_.func_71502_e());
@@ -123,7 +123,7 @@
}
public boolean func_152349_b()
@@ -904,11 +916,6 @@
@@ -905,11 +917,6 @@
public void func_147108_a(@Nullable GuiScreen p_147108_1_)
{
@@ -135,7 +135,7 @@
if (p_147108_1_ == null && this.field_71441_e == null)
{
p_147108_1_ = new GuiMainMenu();
@@ -918,6 +925,17 @@
@@ -919,6 +926,17 @@
p_147108_1_ = new GuiGameOver((ITextComponent)null);
}
@@ -153,7 +153,7 @@
if (p_147108_1_ instanceof GuiMainMenu || p_147108_1_ instanceof GuiMultiplayer)
{
this.field_71474_y.field_74330_P = false;
@@ -1053,9 +1071,11 @@
@@ -1054,9 +1072,11 @@
if (!this.field_71454_w)
{
@@ -165,7 +165,7 @@
}
this.field_71424_I.func_76319_b();
@@ -1398,9 +1418,9 @@
@@ -1399,9 +1419,9 @@
{
BlockPos blockpos = this.field_71476_x.func_178782_a();
@@ -177,7 +177,7 @@
this.field_71439_g.func_184609_a(EnumHand.MAIN_HAND);
}
}
@@ -1434,7 +1454,7 @@
@@ -1435,7 +1455,7 @@
case BLOCK:
BlockPos blockpos = this.field_71476_x.func_178782_a();
@@ -186,32 +186,23 @@
{
this.field_71442_b.func_180511_b(blockpos, this.field_71476_x.field_178784_b);
break;
@@ -1448,6 +1468,7 @@
@@ -1449,6 +1469,7 @@
}
this.field_71439_g.func_184821_cY();
+ net.minecraftforge.common.ForgeHooks.onEmptyLeftClick(this.field_71439_g, this.field_71439_g.func_184614_ca());
+ net.minecraftforge.common.ForgeHooks.onEmptyLeftClick(this.field_71439_g);
}
this.field_71439_g.func_184609_a(EnumHand.MAIN_HAND);
@@ -1477,7 +1498,6 @@
switch (this.field_71476_x.field_72313_a)
{
case ENTITY:
-
if (this.field_71442_b.func_187102_a(this.field_71439_g, this.field_71476_x.field_72308_g, this.field_71476_x, this.field_71439_g.func_184586_b(enumhand), enumhand) == EnumActionResult.SUCCESS)
{
return;
@@ -1520,7 +1540,7 @@
@@ -1514,6 +1535,7 @@
}
}
ItemStack itemstack1 = this.field_71439_g.func_184586_b(enumhand);
-
+ if (itemstack1 == null && (this.field_71476_x == null || this.field_71476_x.field_72313_a == RayTraceResult.Type.MISS)) net.minecraftforge.common.ForgeHooks.onEmptyClick(this.field_71439_g, enumhand);
if (itemstack1 != null && this.field_71442_b.func_187101_a(this.field_71439_g, this.field_71441_e, itemstack1, enumhand) == EnumActionResult.SUCCESS)
+ if (itemstack.func_190926_b() && (this.field_71476_x == null || this.field_71476_x.field_72313_a == RayTraceResult.Type.MISS)) net.minecraftforge.common.ForgeHooks.onEmptyClick(this.field_71439_g, enumhand);
if (!itemstack.func_190926_b() && this.field_71442_b.func_187101_a(this.field_71439_g, this.field_71441_e, enumhand) == EnumActionResult.SUCCESS)
{
this.field_71460_t.field_78516_c.func_187460_a(enumhand);
@@ -1627,6 +1647,8 @@
@@ -1620,6 +1642,8 @@
--this.field_71467_ac;
}
@@ -220,7 +211,7 @@
this.field_71424_I.func_76320_a("gui");
if (!this.field_71445_n)
@@ -1738,6 +1760,7 @@
@@ -1731,6 +1755,7 @@
this.field_71457_ai = 0;
this.field_71441_e.func_72897_h(this.field_71439_g);
}
@@ -228,15 +219,15 @@
}
this.field_71424_I.func_76318_c("gameRenderer");
@@ -1825,6 +1848,7 @@
this.field_71453_ak.func_74428_b();
@@ -1819,6 +1844,7 @@
}
+ net.minecraftforge.fml.common.FMLCommonHandler.instance().onPostClientTick();
this.field_71424_I.func_76319_b();
+ net.minecraftforge.fml.common.FMLCommonHandler.instance().onPostClientTick();
this.field_71423_H = func_71386_F();
}
@@ -1931,6 +1955,7 @@
@@ -1924,6 +1950,7 @@
}
}
}
@@ -244,7 +235,7 @@
}
this.func_184117_aA();
@@ -2177,6 +2202,8 @@
@@ -2170,6 +2197,8 @@
{
while (Mouse.next())
{
@@ -253,7 +244,7 @@
int i = Mouse.getEventButton();
KeyBinding.func_74510_a(i - 100, Mouse.getEventButtonState());
@@ -2242,6 +2269,7 @@
@@ -2235,6 +2264,7 @@
public void func_71371_a(String p_71371_1_, String p_71371_2_, @Nullable WorldSettings p_71371_3_)
{
@@ -261,7 +252,7 @@
this.func_71403_a((WorldClient)null);
System.gc();
ISaveHandler isavehandler = this.field_71469_aa.func_75804_a(p_71371_1_, false);
@@ -2284,6 +2312,12 @@
@@ -2277,6 +2307,12 @@
while (!this.field_71437_Z.func_71200_ad())
{
@@ -274,13 +265,13 @@
String s = this.field_71437_Z.func_71195_b_();
if (s != null)
@@ -2309,8 +2343,14 @@
@@ -2302,8 +2338,14 @@
SocketAddress socketaddress = this.field_71437_Z.func_147137_ag().func_151270_a();
NetworkManager networkmanager = NetworkManager.func_150722_a(socketaddress);
networkmanager.func_150719_a(new NetHandlerLoginClient(networkmanager, this, (GuiScreen)null));
- networkmanager.func_179290_a(new C00Handshake(210, socketaddress.toString(), 0, EnumConnectionState.LOGIN));
- networkmanager.func_179290_a(new C00Handshake(316, socketaddress.toString(), 0, EnumConnectionState.LOGIN));
- networkmanager.func_179290_a(new CPacketLoginStart(this.func_110432_I().func_148256_e()));
+ networkmanager.func_179290_a(new C00Handshake(210, socketaddress.toString(), 0, EnumConnectionState.LOGIN, true));
+ networkmanager.func_179290_a(new C00Handshake(316, socketaddress.toString(), 0, EnumConnectionState.LOGIN, true));
+ com.mojang.authlib.GameProfile gameProfile = this.func_110432_I().func_148256_e();
+ if (!this.func_110432_I().hasCachedProperties())
+ {
@@ -291,7 +282,7 @@
this.field_71453_ak = networkmanager;
}
@@ -2321,6 +2361,8 @@
@@ -2314,6 +2356,8 @@
public void func_71353_a(@Nullable WorldClient p_71353_1_, String p_71353_2_)
{
@@ -300,11 +291,11 @@
if (p_71353_1_ == null)
{
NetHandlerPlayClient nethandlerplayclient = this.func_147114_u();
@@ -2333,6 +2375,18 @@
@@ -2326,6 +2370,18 @@
if (this.field_71437_Z != null && this.field_71437_Z.func_175578_N())
{
this.field_71437_Z.func_71263_m();
+ if (field_71461_s != null)
+ if (field_71461_s != null && this.field_71425_J)
+ {
+ this.field_71461_s.func_73719_c(I18n.func_135052_a("forge.client.shutdown.internal"));
+ }
@@ -319,7 +310,7 @@
}
this.field_71437_Z = null;
@@ -2356,6 +2410,7 @@
@@ -2349,6 +2405,7 @@
this.field_71456_v.func_181029_i();
this.func_71351_a((ServerData)null);
this.field_71455_al = false;
@@ -327,7 +318,7 @@
}
this.field_147127_av.func_147690_c();
@@ -2473,159 +2528,8 @@
@@ -2466,159 +2523,8 @@
{
if (this.field_71476_x != null && this.field_71476_x.field_72313_a != RayTraceResult.Type.MISS)
{
@@ -348,7 +339,7 @@
-
- itemstack = block.func_185473_a(this.field_71441_e, blockpos, iblockstate);
-
- if (itemstack == null)
- if (itemstack.func_190926_b())
- {
- return;
- }
@@ -378,13 +369,13 @@
- EntityItemFrame entityitemframe = (EntityItemFrame)this.field_71476_x.field_72308_g;
- ItemStack itemstack1 = entityitemframe.func_82335_i();
-
- if (itemstack1 == null)
- if (itemstack1.func_190926_b())
- {
- itemstack = new ItemStack(Items.field_151160_bD);
- }
- else
- {
- itemstack = ItemStack.func_77944_b(itemstack1);
- itemstack = itemstack1.func_77946_l();
- }
- }
- else if (this.field_71476_x.field_72308_g instanceof EntityMinecart)
@@ -429,32 +420,32 @@
- }
- else
- {
- String s = EntityList.func_75621_b(this.field_71476_x.field_72308_g);
- ResourceLocation resourcelocation = EntityList.func_191301_a(this.field_71476_x.field_72308_g);
-
- if (!EntityList.field_75627_a.containsKey(s))
- if (resourcelocation == null || !EntityList.field_75627_a.containsKey(resourcelocation))
- {
- return;
- }
-
- itemstack = new ItemStack(Items.field_151063_bx);
- ItemMonsterPlacer.func_185078_a(itemstack, s);
- ItemMonsterPlacer.func_185078_a(itemstack, resourcelocation);
- }
- }
-
- if (itemstack.func_77973_b() == null)
- if (itemstack.func_190926_b())
- {
- String s1 = "";
- String s = "";
-
- if (this.field_71476_x.field_72313_a == RayTraceResult.Type.BLOCK)
- {
- s1 = ((ResourceLocation)Block.field_149771_c.func_177774_c(this.field_71441_e.func_180495_p(this.field_71476_x.func_178782_a()).func_177230_c())).toString();
- s = ((ResourceLocation)Block.field_149771_c.func_177774_c(this.field_71441_e.func_180495_p(this.field_71476_x.func_178782_a()).func_177230_c())).toString();
- }
- else if (this.field_71476_x.field_72313_a == RayTraceResult.Type.ENTITY)
- {
- s1 = EntityList.func_75621_b(this.field_71476_x.field_72308_g);
- s = EntityList.func_191301_a(this.field_71476_x.field_72308_g).toString();
- }
-
- field_147123_G.warn("Picking on: [{}] {} gave null item", new Object[] {this.field_71476_x.field_72313_a, s1});
- field_147123_G.warn("Picking on: [{}] {} gave null item", new Object[] {this.field_71476_x.field_72313_a, s});
- }
- else
- {
@@ -489,7 +480,7 @@
}
}
@@ -2927,18 +2831,8 @@
@@ -2921,18 +2827,8 @@
public static int func_71369_N()
{
@@ -510,7 +501,7 @@
}
public boolean func_70002_Q()
@@ -3077,15 +2971,16 @@
@@ -3071,15 +2967,16 @@
{
if (Keyboard.getEventKeyState())
{
@@ -529,7 +520,7 @@
}
}
}
@@ -3205,6 +3100,12 @@
@@ -3199,6 +3096,12 @@
return this.field_184127_aH;
}
@@ -46,4 +46,4 @@
+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.sound.PlaySoundSourceEvent(this, p_148611_1_, s));
}
field_148621_b.debug(field_148623_a, "Playing sound {} for event {} as channel {}", new Object[] {sound.func_188719_a(), resourcelocation1, s});
field_148621_b.debug(field_148623_a, "Playing sound {} for event {} as channel {}", new Object[] {sound.func_188719_a(), resourcelocation, s});
@@ -0,0 +1,10 @@
--- ../src-base/minecraft/net/minecraft/client/entity/EntityOtherPlayerMP.java
+++ ../src-work/minecraft/net/minecraft/client/entity/EntityOtherPlayerMP.java
@@ -43,6 +43,7 @@
public boolean func_70097_a(DamageSource p_70097_1_, float p_70097_2_)
{
+ net.minecraftforge.common.ForgeHooks.onLivingAttack(this, p_70097_1_, p_70097_2_);
return true;
}
@@ -1,7 +1,15 @@
--- ../src-base/minecraft/net/minecraft/client/entity/EntityPlayerSP.java
+++ ../src-work/minecraft/net/minecraft/client/entity/EntityPlayerSP.java
@@ -415,6 +415,15 @@
this.field_71159_c.field_71456_v.func_146158_b().func_146227_a(p_146105_1_);
@@ -125,6 +125,7 @@
public boolean func_70097_a(DamageSource p_70097_1_, float p_70097_2_)
{
+ net.minecraftforge.common.ForgeHooks.onLivingAttack(this, p_70097_1_, p_70097_2_);
return false;
}
@@ -428,6 +429,15 @@
}
}
+ private boolean isHeadspaceFree(BlockPos pos, int height)
@@ -16,7 +24,7 @@
protected boolean func_145771_j(double p_145771_1_, double p_145771_3_, double p_145771_5_)
{
if (this.field_70145_X)
@@ -427,30 +436,34 @@
@@ -440,30 +450,34 @@
double d0 = p_145771_1_ - (double)blockpos.func_177958_n();
double d1 = p_145771_5_ - (double)blockpos.func_177952_p();
@@ -56,16 +64,17 @@
{
d2 = 1.0D - d1;
i = 5;
@@ -485,7 +498,7 @@
@@ -498,7 +512,8 @@
private boolean func_175162_d(BlockPos p_175162_1_)
{
- return !this.field_70170_p.func_180495_p(p_175162_1_).func_185915_l() && !this.field_70170_p.func_180495_p(p_175162_1_.func_177984_a()).func_185915_l();
+ return !this.field_70170_p.func_180495_p(p_175162_1_).func_185915_l();
+ IBlockState iblockstate = field_70170_p.func_180495_p(p_175162_1_);
+ return !iblockstate.func_177230_c().isNormalCube(iblockstate, field_70170_p, p_175162_1_);
}
public void func_70031_b(boolean p_70031_1_)
@@ -530,7 +543,13 @@
@@ -543,7 +558,13 @@
public void func_184185_a(SoundEvent p_184185_1_, float p_184185_2_, float p_184185_3_)
{
@@ -9,15 +9,7 @@
for (int i = 0; i < 32; ++i)
{
@@ -97,6 +97,7 @@
public void func_110549_a(IResourceManager p_110549_1_)
{
this.func_111272_d();
+ this.func_98306_d();
}
private void func_111272_d()
@@ -106,7 +107,7 @@
@@ -107,7 +107,7 @@
try
{
@@ -26,7 +18,7 @@
bufferedimage = TextureUtil.func_177053_a(iresource.func_110527_b());
}
catch (IOException ioexception)
@@ -171,7 +172,7 @@
@@ -172,7 +172,7 @@
try
{
@@ -35,7 +27,15 @@
iresource.func_110527_b().read(this.field_78287_e);
}
catch (IOException ioexception)
@@ -202,7 +203,7 @@
@@ -187,6 +187,7 @@
private float func_181559_a(char p_181559_1_, boolean p_181559_2_)
{
+ if (p_181559_1_ == 160) return 4.0F; // forge: display nbsp as space. MC-2595
if (p_181559_1_ == 32)
{
return 4.0F;
@@ -203,7 +204,7 @@
int i = p_78266_1_ % 16 * 8;
int j = p_78266_1_ / 16 * 8;
int k = p_78266_2_ ? 1 : 0;
@@ -44,7 +44,7 @@
int l = this.field_78286_d[p_78266_1_];
float f = (float)l - 0.01F;
GlStateManager.func_187447_r(5);
@@ -230,7 +231,7 @@
@@ -231,7 +232,7 @@
private void func_78257_a(int p_78257_1_)
{
@@ -53,7 +53,7 @@
}
protected float func_78277_a(char p_78277_1_, boolean p_78277_2_)
@@ -279,7 +280,7 @@
@@ -280,7 +281,7 @@
public int func_175065_a(String p_175065_1_, float p_175065_2_, float p_175065_3_, int p_175065_4_, boolean p_175065_5_)
{
@@ -62,7 +62,7 @@
this.func_78265_b();
int i;
@@ -349,7 +350,7 @@
@@ -350,7 +351,7 @@
int j1 = this.field_78285_g[i1];
this.field_78304_r = j1;
@@ -71,7 +71,7 @@
}
else if (i1 == 16)
{
@@ -378,7 +379,7 @@
@@ -379,7 +380,7 @@
this.field_78299_w = false;
this.field_78300_v = false;
this.field_78301_u = false;
@@ -80,7 +80,7 @@
}
++i;
@@ -406,7 +407,7 @@
@@ -407,7 +408,7 @@
c0 = c1;
}
@@ -89,7 +89,7 @@
boolean flag = (c0 == 0 || j == -1 || this.field_78293_l) && p_78255_2_;
if (flag)
@@ -444,7 +445,16 @@
@@ -445,7 +446,16 @@
++f;
}
@@ -106,7 +106,7 @@
if (this.field_78299_w)
{
Tessellator tessellator = Tessellator.func_178181_a();
@@ -517,7 +527,7 @@
@@ -518,7 +528,7 @@
this.field_78292_o = (float)(p_180455_4_ >> 8 & 255) / 255.0F;
this.field_78306_p = (float)(p_180455_4_ & 255) / 255.0F;
this.field_78305_q = (float)(p_180455_4_ >> 24 & 255) / 255.0F;
@@ -115,7 +115,15 @@
this.field_78295_j = p_180455_2_;
this.field_78296_k = p_180455_3_;
this.func_78255_a(p_180455_1_, p_180455_5_);
@@ -848,6 +858,26 @@
@@ -576,6 +586,7 @@
public int func_78263_a(char p_78263_1_)
{
+ if (p_78263_1_ == 160) return 4; // forge: display nbsp as space. MC-2595
if (p_78263_1_ == 167)
{
return -1;
@@ -849,6 +860,26 @@
return this.field_78294_m;
}
@@ -0,0 +1,26 @@
--- ../src-base/minecraft/net/minecraft/client/gui/GuiEnchantment.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiEnchantment.java
@@ -171,7 +171,7 @@
FontRenderer fontrenderer = this.field_146297_k.field_71464_q;
int i2 = 6839882;
- if ((k < l + 1 || this.field_146297_k.field_71439_g.field_71068_ca < k1) && !this.field_146297_k.field_71439_g.field_71075_bZ.field_75098_d)
+ if (((k < l + 1 || this.field_146297_k.field_71439_g.field_71068_ca < k1) && !this.field_146297_k.field_71439_g.field_71075_bZ.field_75098_d) || this.field_147075_G.field_185001_h[l] == -1) // Forge: render buttons as disabled when enchantable but enchantability not met on lower levels
{
this.func_73729_b(i1, j + 14 + 19 * l, 0, 185, 108, 19);
this.func_73729_b(i1 + 1, j + 15 + 19 * l, 16 * l, 239, 16, 16);
@@ -217,11 +217,12 @@
int l = this.field_147075_G.field_185002_i[j];
int i1 = j + 1;
- if (this.func_146978_c(60, 14 + 19 * j, 108, 17, p_73863_1_, p_73863_2_) && k > 0 && l >= 0 && enchantment != null)
+ if (this.func_146978_c(60, 14 + 19 * j, 108, 17, p_73863_1_, p_73863_2_) && k > 0)
{
List<String> list = Lists.<String>newArrayList();
- list.add("" + TextFormatting.WHITE + TextFormatting.ITALIC + I18n.func_135052_a("container.enchant.clue", new Object[] {enchantment.func_77316_c(l)}));
+ list.add("" + TextFormatting.WHITE + TextFormatting.ITALIC + I18n.func_135052_a("container.enchant.clue", new Object[] {enchantment == null ? "" : enchantment.func_77316_c(l)}));
+ if(enchantment == null) java.util.Collections.addAll(list, "", TextFormatting.RED + I18n.func_135052_a("forge.container.enchant.limitedEnchantability")); else
if (!flag)
{
list.add("");
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/client/gui/GuiIngame.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiIngame.java
@@ -360,7 +360,8 @@
@@ -359,7 +359,8 @@
BlockPos blockpos = raytraceresult.func_178782_a();
@@ -10,7 +10,7 @@
{
return;
}
@@ -418,7 +419,10 @@
@@ -429,7 +430,10 @@
{
Potion potion = potioneffect.func_188419_a();
@@ -22,7 +22,7 @@
{
int k = p_184048_1_.func_78326_a();
int l = 1;
@@ -455,7 +459,10 @@
@@ -472,7 +476,10 @@
}
GlStateManager.func_179131_c(1.0F, 1.0F, 1.0F, f);
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/client/gui/GuiListWorldSelectionEntry.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiListWorldSelectionEntry.java
@@ -242,7 +242,7 @@
@@ -246,7 +246,7 @@
if (this.field_186784_e.func_71359_d().func_90033_f(this.field_186786_g.func_75786_a()))
{
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/client/gui/GuiMainMenu.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiMainMenu.java
@@ -67,6 +67,8 @@
@@ -65,6 +65,8 @@
private GuiButton field_175372_K;
private boolean field_183502_L;
private GuiScreen field_183503_M;
@@ -9,7 +9,7 @@
public GuiMainMenu()
{
@@ -209,13 +211,15 @@
@@ -216,13 +218,15 @@
this.field_183503_M.func_183500_a(this.field_146294_l, this.field_146295_m);
this.field_183503_M.func_73866_w_();
}
@@ -26,7 +26,7 @@
}
private void func_73972_b(int p_73972_1_, int p_73972_2_)
@@ -263,6 +267,11 @@
@@ -270,6 +274,11 @@
this.field_146297_k.func_71400_g();
}
@@ -38,7 +38,7 @@
if (p_146284_1_.field_146127_k == 11)
{
this.field_146297_k.func_71371_a("Demo_World", "Demo_World", DemoWorldServer.field_73071_a);
@@ -490,6 +499,8 @@
@@ -501,6 +510,8 @@
this.func_73729_b(j + 155, 30, 0, 45, 155, 44);
}
@@ -47,7 +47,7 @@
GlStateManager.func_179094_E();
GlStateManager.func_179109_b((float)(this.field_146294_l / 2 + 90), 70.0F, 0.0F);
GlStateManager.func_179114_b(-20.0F, 0.0F, 0.0F, 1.0F);
@@ -509,7 +520,15 @@
@@ -520,7 +531,15 @@
s = s + ("release".equalsIgnoreCase(this.field_146297_k.func_184123_d()) ? "" : "/" + this.field_146297_k.func_184123_d());
}
@@ -64,7 +64,7 @@
String s1 = "Copyright Mojang AB. Do not distribute!";
this.func_73731_b(this.field_146289_q, "Copyright Mojang AB. Do not distribute!", this.field_146294_l - this.field_146289_q.func_78256_a("Copyright Mojang AB. Do not distribute!") - 2, this.field_146295_m - 10, -1);
@@ -526,6 +545,7 @@
@@ -537,6 +556,7 @@
{
this.field_183503_M.func_73863_a(p_73863_1_, p_73863_2_, p_73863_3_);
}
@@ -72,7 +72,7 @@
}
protected void func_73864_a(int p_73864_1_, int p_73864_2_, int p_73864_3_) throws IOException
@@ -546,6 +566,8 @@
@@ -557,6 +577,8 @@
{
this.field_183503_M.func_73864_a(p_73864_1_, p_73864_2_, p_73864_3_);
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/client/gui/GuiOverlayDebug.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiOverlayDebug.java
@@ -188,6 +188,9 @@
@@ -189,6 +189,9 @@
long l = j - k;
List<String> list = Lists.newArrayList(new String[] {String.format("Java: %s %dbit", new Object[]{System.getProperty("java.version"), Integer.valueOf(this.field_175242_a.func_147111_S() ? 64 : 32)}), String.format("Mem: % 2d%% %03d/%03dMB", new Object[]{Long.valueOf(l * 100L / i), Long.valueOf(func_175240_a(l)), Long.valueOf(func_175240_a(i))}), String.format("Allocated: % 2d%% %03dMB", new Object[]{Long.valueOf(j * 100L / i), Long.valueOf(func_175240_a(j))}), "", String.format("CPU: %s", new Object[]{OpenGlHelper.func_183029_j()}), "", String.format("Display: %dx%d (%s)", new Object[]{Integer.valueOf(Display.getWidth()), Integer.valueOf(Display.getHeight()), GlStateManager.func_187416_u(7936)}), GlStateManager.func_187416_u(7937), GlStateManager.func_187416_u(7938)});
@@ -1,6 +1,14 @@
--- ../src-base/minecraft/net/minecraft/client/gui/GuiScreen.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiScreen.java
@@ -147,7 +147,10 @@
@@ -63,6 +63,7 @@
private long field_146288_g;
private int field_146298_h;
private URI field_175286_t;
+ protected boolean keyHandled, mouseHandled; // Forge: allow canceling key and mouse Post events from handleMouseInput and handleKeyboardInput
public void func_73863_a(int p_73863_1_, int p_73863_2_, float p_73863_3_)
{
@@ -147,7 +148,10 @@
}
}
@@ -12,7 +20,7 @@
}
protected void func_146279_a(String p_146279_1_, int p_146279_2_, int p_146279_3_)
@@ -157,7 +160,13 @@
@@ -157,7 +161,13 @@
protected void func_146283_a(List<String> p_146283_1_, int p_146283_2_, int p_146283_3_)
{
@@ -27,7 +35,13 @@
{
GlStateManager.func_179101_C();
RenderHelper.func_74518_a();
@@ -427,6 +436,7 @@
@@ -414,10 +424,13 @@
public void func_175281_b(String p_175281_1_, boolean p_175281_2_)
{
+ p_175281_1_ = net.minecraftforge.event.ForgeEventFactory.onClientSendMessage(p_175281_1_);
+ if (p_175281_1_.isEmpty()) return;
if (p_175281_2_)
{
this.field_146297_k.field_71456_v.func_146158_b().func_146239_a(p_175281_1_);
}
@@ -35,7 +49,7 @@
this.field_146297_k.field_71439_g.func_71165_d(p_175281_1_);
}
@@ -441,9 +451,15 @@
@@ -432,9 +445,15 @@
if (guibutton.func_146116_c(this.field_146297_k, p_73864_1_, p_73864_2_))
{
@@ -51,7 +65,7 @@
}
}
}
@@ -473,8 +489,12 @@
@@ -464,8 +483,12 @@
this.field_146289_q = p_146280_1_.field_71466_p;
this.field_146294_l = p_146280_2_;
this.field_146295_m = p_146280_3_;
@@ -64,27 +78,29 @@
}
public void func_183500_a(int p_183500_1_, int p_183500_2_)
@@ -493,7 +513,9 @@
@@ -484,7 +507,10 @@
{
while (Mouse.next())
{
+ this.mouseHandled = false;
+ if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.GuiScreenEvent.MouseInputEvent.Pre(this))) continue;
this.func_146274_d();
+ if (this.equals(this.field_146297_k.field_71462_r)) net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.GuiScreenEvent.MouseInputEvent.Post(this));
+ if (this.equals(this.field_146297_k.field_71462_r) && !this.mouseHandled) net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.GuiScreenEvent.MouseInputEvent.Post(this));
}
}
@@ -501,7 +523,9 @@
@@ -492,7 +518,10 @@
{
while (Keyboard.next())
{
+ this.keyHandled = false;
+ if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.GuiScreenEvent.KeyboardInputEvent.Pre(this))) continue;
this.func_146282_l();
+ if (this.equals(this.field_146297_k.field_71462_r)) net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.GuiScreenEvent.KeyboardInputEvent.Post(this));
+ if (this.equals(this.field_146297_k.field_71462_r) && !this.keyHandled) net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.GuiScreenEvent.KeyboardInputEvent.Post(this));
}
}
}
@@ -563,6 +587,7 @@
@@ -554,6 +583,7 @@
public void func_146276_q_()
{
this.func_146270_b(0);
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/client/gui/GuiScreenDemo.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiScreenDemo.java
@@ -73,10 +73,10 @@
@@ -68,10 +68,10 @@
this.field_146289_q.func_78276_b(I18n.func_135052_a("demo.help.title", new Object[0]), i, j, 2039583);
j = j + 12;
GameSettings gamesettings = this.field_146297_k.field_71474_y;
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/client/gui/GuiVideoSettings.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiVideoSettings.java
@@ -107,4 +107,12 @@
@@ -117,4 +117,12 @@
this.func_73732_a(this.field_146289_q, this.field_146500_a, this.field_146294_l / 2, 5, 16777215);
super.func_73863_a(p_73863_1_, p_73863_2_, p_73863_3_);
}
@@ -1,7 +1,7 @@
--- ../src-base/minecraft/net/minecraft/client/gui/ServerListEntryNormal.java
+++ ../src-work/minecraft/net/minecraft/client/gui/ServerListEntryNormal.java
@@ -82,7 +82,7 @@
boolean flag1 = this.field_148301_e.field_82821_f < 210;
boolean flag1 = this.field_148301_e.field_82821_f < 316;
boolean flag2 = flag || flag1;
this.field_148300_d.field_71466_p.func_78276_b(this.field_148301_e.field_78847_a, p_180790_2_ + 32 + 3, p_180790_3_ + 1, 16777215);
- List<String> list = this.field_148300_d.field_71466_p.func_78271_c(this.field_148301_e.field_78843_d, p_180790_4_ - 32 - 2);
@@ -1,21 +1,20 @@
--- ../src-base/minecraft/net/minecraft/client/gui/inventory/GuiContainer.java
+++ ../src-work/minecraft/net/minecraft/client/gui/inventory/GuiContainer.java
@@ -176,8 +176,11 @@
@@ -180,8 +180,10 @@
GlStateManager.func_179109_b(0.0F, 0.0F, 32.0F);
this.field_73735_i = 200.0F;
this.field_146296_j.field_77023_b = 200.0F;
+ net.minecraft.client.gui.FontRenderer font = null;
+ if (p_146982_1_ != null) font = p_146982_1_.func_77973_b().getFontRenderer(p_146982_1_);
+ net.minecraft.client.gui.FontRenderer font = p_146982_1_.func_77973_b().getFontRenderer(p_146982_1_);
+ if (font == null) font = field_146289_q;
this.field_146296_j.func_180450_b(p_146982_1_, p_146982_2_, p_146982_3_);
- this.field_146296_j.func_180453_a(this.field_146289_q, p_146982_1_, p_146982_2_, p_146982_3_ - (this.field_147012_x == null ? 0 : 8), p_146982_4_);
+ this.field_146296_j.func_180453_a(font, p_146982_1_, p_146982_2_, p_146982_3_ - (this.field_147012_x == null ? 0 : 8), p_146982_4_);
- this.field_146296_j.func_180453_a(this.field_146289_q, p_146982_1_, p_146982_2_, p_146982_3_ - (this.field_147012_x.func_190926_b() ? 0 : 8), p_146982_4_);
+ this.field_146296_j.func_180453_a(font, p_146982_1_, p_146982_2_, p_146982_3_ - (this.field_147012_x.func_190926_b() ? 0 : 8), p_146982_4_);
this.field_73735_i = 0.0F;
this.field_146296_j.field_77023_b = 0.0F;
}
@@ -240,13 +243,12 @@
@@ -239,13 +241,12 @@
if (itemstack == null && p_146977_1_.func_111238_b())
if (itemstack.func_190926_b() && p_146977_1_.func_111238_b())
{
- String s1 = p_146977_1_.func_178171_c();
+ TextureAtlasSprite textureatlassprite = p_146977_1_.getBackgroundSprite();
@@ -30,7 +29,7 @@
this.func_175175_a(i, j, textureatlassprite, 16, 16);
GlStateManager.func_179145_e();
flag1 = true;
@@ -316,7 +318,7 @@
@@ -319,7 +320,7 @@
protected void func_73864_a(int p_73864_1_, int p_73864_2_, int p_73864_3_) throws IOException
{
super.func_73864_a(p_73864_1_, p_73864_2_, p_73864_3_);
@@ -39,7 +38,7 @@
Slot slot = this.func_146975_c(p_73864_1_, p_73864_2_);
long i = Minecraft.func_71386_F();
this.field_146993_M = this.field_146998_K == slot && i - this.field_146997_J < 250L && this.field_146992_L == p_73864_3_;
@@ -327,6 +329,7 @@
@@ -330,6 +331,7 @@
int j = this.field_147003_i;
int k = this.field_147009_r;
boolean flag1 = p_73864_1_ < j || p_73864_2_ < k || p_73864_1_ >= j + this.field_146999_f || p_73864_2_ >= k + this.field_147000_g;
@@ -47,16 +46,16 @@
int l = -1;
if (slot != null)
@@ -364,7 +367,7 @@
@@ -367,7 +369,7 @@
{
if (this.field_146297_k.field_71439_g.field_71071_by.func_70445_o() == null)
if (this.field_146297_k.field_71439_g.field_71071_by.func_70445_o().func_190926_b())
{
- if (p_73864_3_ == this.field_146297_k.field_71474_y.field_74322_I.func_151463_i() + 100)
+ if (this.field_146297_k.field_71474_y.field_74322_I.isActiveAndMatches(p_73864_3_ - 100))
{
this.func_184098_a(slot, l, p_73864_3_, ClickType.CLONE);
}
@@ -402,7 +405,7 @@
@@ -405,7 +407,7 @@
{
this.field_146987_F = 1;
}
@@ -65,7 +64,7 @@
{
this.field_146987_F = 2;
}
@@ -464,10 +467,12 @@
@@ -467,10 +469,12 @@
protected void func_146286_b(int p_146286_1_, int p_146286_2_, int p_146286_3_)
{
@@ -78,7 +77,7 @@
int k = -1;
if (slot != null)
@@ -488,7 +493,7 @@
@@ -491,7 +495,7 @@
{
for (Slot slot2 : this.field_147002_h.field_75151_b)
{
@@ -87,16 +86,16 @@
{
this.func_184098_a(slot2, slot2.field_75222_d, p_146286_3_, ClickType.QUICK_MOVE);
}
@@ -575,7 +580,7 @@
@@ -578,7 +582,7 @@
}
else if (this.field_146297_k.field_71439_g.field_71071_by.func_70445_o() != null)
else if (!this.field_146297_k.field_71439_g.field_71071_by.func_70445_o().func_190926_b())
{
- if (p_146286_3_ == this.field_146297_k.field_71474_y.field_74322_I.func_151463_i() + 100)
+ if (this.field_146297_k.field_71474_y.field_74322_I.isActiveAndMatches(p_146286_3_ - 100))
{
this.func_184098_a(slot, k, p_146286_3_, ClickType.CLONE);
}
@@ -627,7 +632,7 @@
@@ -630,7 +634,7 @@
protected void func_73869_a(char p_73869_1_, int p_73869_2_) throws IOException
{
@@ -105,7 +104,7 @@
{
this.field_146297_k.field_71439_g.func_71053_j();
}
@@ -636,11 +641,11 @@
@@ -639,11 +643,11 @@
if (this.field_147006_u != null && this.field_147006_u.func_75216_d())
{
@@ -119,7 +118,7 @@
{
this.func_184098_a(this.field_147006_u, this.field_147006_u.field_75222_d, func_146271_m() ? 1 : 0, ClickType.THROW);
}
@@ -653,7 +658,7 @@
@@ -656,7 +660,7 @@
{
for (int i = 0; i < 9; ++i)
{
@@ -128,7 +127,7 @@
{
this.func_184098_a(this.field_147006_u, this.field_147006_u.field_75222_d, i, ClickType.SWAP);
return true;
@@ -686,4 +691,16 @@
@@ -689,4 +693,18 @@
this.field_146297_k.field_71439_g.func_71053_j();
}
}
@@ -138,10 +137,12 @@
+ /**
+ * Returns the slot that is currently displayed under the mouse.
+ */
+ public Slot getSlotUnderMouse()
+ {
+ return this.field_147006_u;
+ }
+ @javax.annotation.Nullable
+ public Slot getSlotUnderMouse() { return this.field_147006_u; }
+ public int getGuiLeft() { return field_147003_i; }
+ public int getGuiTop() { return field_147009_r; }
+ public int getXSize() { return field_146999_f; }
+ public int getYSize() { return field_147000_g; }
+
+ /* ======================================== FORGE END =====================================*/
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/client/gui/inventory/GuiContainerCreative.java
+++ ../src-work/minecraft/net/minecraft/client/gui/inventory/GuiContainerCreative.java
@@ -50,6 +50,8 @@
@@ -52,6 +52,8 @@
private Slot field_147064_C;
private boolean field_147057_D;
private CreativeCrafting field_147059_E;
@@ -9,7 +9,7 @@
public GuiContainerCreative(EntityPlayer p_i1088_1_)
{
@@ -259,6 +261,13 @@
@@ -272,6 +274,13 @@
this.func_147050_b(CreativeTabs.field_78032_a[i]);
this.field_147059_E = new CreativeCrafting(this.field_146297_k);
this.field_146297_k.field_71439_g.field_71069_bz.func_75132_a(this.field_147059_E);
@@ -18,12 +18,12 @@
+ {
+ field_146292_n.add(new GuiButton(101, field_147003_i, field_147009_r - 50, 20, 20, "<"));
+ field_146292_n.add(new GuiButton(102, field_147003_i + field_146999_f - 20, field_147009_r - 50, 20, 20, ">"));
+ maxPages = ((tabCount - 12) / 10) + 1;
+ maxPages = (int) Math.ceil((tabCount - 12) / 10D);
+ }
}
else
{
@@ -280,7 +289,7 @@
@@ -293,7 +302,7 @@
protected void func_73869_a(char p_73869_1_, int p_73869_2_) throws IOException
{
@@ -32,7 +32,7 @@
{
if (GameSettings.func_100015_a(this.field_146297_k.field_71474_y.field_74310_D))
{
@@ -318,6 +327,14 @@
@@ -331,6 +340,14 @@
GuiContainerCreative.ContainerCreative guicontainercreative$containercreative = (GuiContainerCreative.ContainerCreative)this.field_147002_h;
guicontainercreative$containercreative.field_148330_a.clear();
@@ -47,7 +47,7 @@
for (Item item : Item.field_150901_e)
{
if (item != null && item.func_77640_w() != null)
@@ -325,7 +342,13 @@
@@ -338,7 +355,13 @@
item.func_150895_a(item, (CreativeTabs)null, guicontainercreative$containercreative.field_148330_a);
}
}
@@ -61,15 +61,15 @@
for (Enchantment enchantment : Enchantment.field_185264_b)
{
if (enchantment != null && enchantment.field_77351_y != null)
@@ -333,7 +356,6 @@
@@ -346,7 +369,6 @@
Items.field_151134_bR.func_92113_a(enchantment, guicontainercreative$containercreative.field_148330_a);
}
}
-
Iterator<ItemStack> iterator = guicontainercreative$containercreative.field_148330_a.iterator();
String s1 = this.field_147062_A.func_146179_b().toLowerCase();
String s1 = this.field_147062_A.func_146179_b().toLowerCase(Locale.ROOT);
@@ -365,7 +387,7 @@
@@ -378,7 +400,7 @@
{
CreativeTabs creativetabs = CreativeTabs.field_78032_a[field_147058_w];
@@ -78,7 +78,7 @@
{
GlStateManager.func_179084_k();
this.field_146289_q.func_78276_b(I18n.func_135052_a(creativetabs.func_78024_c(), new Object[0]), 8, 6, 4210752);
@@ -400,7 +422,7 @@
@@ -413,7 +435,7 @@
for (CreativeTabs creativetabs : CreativeTabs.field_78032_a)
{
@@ -87,7 +87,7 @@
{
this.func_147050_b(creativetabs);
return;
@@ -413,11 +435,13 @@
@@ -426,11 +448,13 @@
private boolean func_147055_p()
{
@@ -101,7 +101,7 @@
int i = field_147058_w;
field_147058_w = p_147050_1_.func_78021_a();
GuiContainerCreative.ContainerCreative guicontainercreative$containercreative = (GuiContainerCreative.ContainerCreative)this.field_147002_h;
@@ -488,12 +512,14 @@
@@ -501,12 +525,14 @@
if (this.field_147062_A != null)
{
@@ -117,7 +117,7 @@
this.func_147053_i();
}
else
@@ -563,20 +589,43 @@
@@ -576,20 +602,43 @@
}
super.func_73863_a(p_73863_1_, p_73863_2_, p_73863_3_);
@@ -162,7 +162,7 @@
GlStateManager.func_179131_c(1.0F, 1.0F, 1.0F, 1.0F);
GlStateManager.func_179140_f();
}
@@ -624,7 +673,9 @@
@@ -637,7 +686,9 @@
}
}
@@ -172,7 +172,7 @@
}
else
{
@@ -638,16 +689,35 @@
@@ -651,16 +702,35 @@
RenderHelper.func_74520_c();
CreativeTabs creativetabs = CreativeTabs.field_78032_a[field_147058_w];
@@ -209,7 +209,7 @@
this.field_146297_k.func_110434_K().func_110577_a(new ResourceLocation("textures/gui/container/creative_inventory/tab_" + creativetabs.func_78015_f()));
this.func_73729_b(this.field_147003_i, this.field_147009_r, 0, 0, this.field_146999_f, this.field_147000_g);
this.field_147062_A.func_146194_f();
@@ -662,6 +732,14 @@
@@ -675,6 +745,14 @@
this.func_73729_b(i, j + (int)((float)(k - j - 17) * this.field_147067_x), 232 + (this.func_147055_p() ? 0 : 12), 0, 12, 15);
}
@@ -224,7 +224,7 @@
this.func_147051_a(creativetabs);
if (creativetabs == CreativeTabs.field_78036_m)
@@ -672,6 +750,14 @@
@@ -685,6 +763,14 @@
protected boolean func_147049_a(CreativeTabs p_147049_1_, int p_147049_2_, int p_147049_3_)
{
@@ -239,7 +239,7 @@
int i = p_147049_1_.func_78020_k();
int j = 28 * i;
int k = 0;
@@ -768,6 +854,8 @@
@@ -781,6 +867,8 @@
}
GlStateManager.func_179140_f();
@@ -248,7 +248,7 @@
this.func_73729_b(l, i1, j, k, 28, 32);
this.field_73735_i = 100.0F;
this.field_146296_j.field_77023_b = 100.0F;
@@ -794,6 +882,15 @@
@@ -807,6 +895,15 @@
{
this.field_146297_k.func_147108_a(new GuiStats(this, this.field_146297_k.field_71439_g.func_146107_m()));
}
@@ -264,3 +264,41 @@
}
public int func_147056_g()
@@ -984,5 +1081,37 @@
{
return this.field_148332_b.func_82869_a(p_82869_1_);
}
+
+ /*========================================= FORGE START =====================================*/
+ public net.minecraft.util.ResourceLocation getBackgroundLocation()
+ {
+ return this.field_148332_b.getBackgroundLocation();
+ }
+
+ public void setBackgroundLocation(net.minecraft.util.ResourceLocation texture)
+ {
+ this.field_148332_b.setBackgroundLocation(texture);
+ }
+
+ public void setBackgroundName(String name)
+ {
+ this.field_148332_b.setBackgroundName(name);
+ }
+
+ public net.minecraft.client.renderer.texture.TextureAtlasSprite getBackgroundSprite()
+ {
+ return this.field_148332_b.getBackgroundSprite();
+ }
+
+ public int getSlotIndex()
+ {
+ return this.field_148332_b.getSlotIndex();
+ }
+
+ public boolean isSameInventory(Slot other)
+ {
+ return this.field_148332_b.isSameInventory(other);
+ }
+ /*========================================= FORGE END =====================================*/
}
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/client/multiplayer/ChunkProviderClient.java
+++ ../src-work/minecraft/net/minecraft/client/multiplayer/ChunkProviderClient.java
@@ -59,6 +59,7 @@
@@ -60,6 +60,7 @@
{
Chunk chunk = new Chunk(this.field_73235_d, p_73158_1_, p_73158_2_);
this.field_73236_b.put(ChunkPos.func_77272_a(p_73158_1_, p_73158_2_), chunk);
@@ -4,8 +4,8 @@
inetaddress = InetAddress.getByName(p_146367_1_);
GuiConnecting.this.field_146371_g = NetworkManager.func_181124_a(inetaddress, p_146367_2_, GuiConnecting.this.field_146297_k.field_71474_y.func_181148_f());
GuiConnecting.this.field_146371_g.func_150719_a(new NetHandlerLoginClient(GuiConnecting.this.field_146371_g, GuiConnecting.this.field_146297_k, GuiConnecting.this.field_146374_i));
- GuiConnecting.this.field_146371_g.func_179290_a(new C00Handshake(210, p_146367_1_, p_146367_2_, EnumConnectionState.LOGIN));
+ GuiConnecting.this.field_146371_g.func_179290_a(new C00Handshake(210, p_146367_1_, p_146367_2_, EnumConnectionState.LOGIN, true));
- GuiConnecting.this.field_146371_g.func_179290_a(new C00Handshake(316, p_146367_1_, p_146367_2_, EnumConnectionState.LOGIN));
+ GuiConnecting.this.field_146371_g.func_179290_a(new C00Handshake(316, p_146367_1_, p_146367_2_, EnumConnectionState.LOGIN, true));
GuiConnecting.this.field_146371_g.func_179290_a(new CPacketLoginStart(GuiConnecting.this.field_146297_k.func_110432_I().func_148256_e()));
}
catch (UnknownHostException unknownhostexception)
@@ -1,19 +1,24 @@
--- ../src-base/minecraft/net/minecraft/client/multiplayer/PlayerControllerMP.java
+++ ../src-work/minecraft/net/minecraft/client/multiplayer/PlayerControllerMP.java
@@ -123,6 +123,12 @@
@@ -122,10 +122,16 @@
}
}
- if (this.field_78779_k.func_77145_d() && !this.field_78776_a.field_71439_g.func_184614_ca().func_190926_b() && this.field_78776_a.field_71439_g.func_184614_ca().func_77973_b() instanceof ItemSword)
+ ItemStack stack = field_78776_a.field_71439_g.func_184614_ca();
+ if (stack != null && stack.func_77973_b() != null && stack.func_77973_b().onBlockStartBreak(stack, p_187103_1_, field_78776_a.field_71439_g))
+ if (!stack.func_190926_b() && stack.func_77973_b().onBlockStartBreak(stack, p_187103_1_, field_78776_a.field_71439_g))
{
return false;
}
+
+ if (this.field_78779_k.func_77145_d() && !stack.func_190926_b() && !stack.func_77973_b().canDestroyBlockInCreative(field_78776_a.field_71441_e, p_187103_1_, stack, field_78776_a.field_71439_g))
+ {
+ return false;
+ }
+
if (this.field_78779_k.func_77145_d() && this.field_78776_a.field_71439_g.func_184614_ca() != null && this.field_78776_a.field_71439_g.func_184614_ca().func_77973_b() instanceof ItemSword)
else
{
return false;
@@ -144,14 +150,7 @@
World world = this.field_78776_a.field_71441_e;
@@ -143,19 +149,13 @@
else
{
world.func_175718_b(2001, p_187103_1_, Block.func_176210_f(iblockstate));
@@ -28,15 +33,18 @@
this.field_178895_c = new BlockPos(this.field_178895_c.func_177958_n(), -1, this.field_178895_c.func_177952_p());
if (!this.field_78779_k.func_77145_d())
@@ -162,13 +161,20 @@
{
itemstack1.func_179548_a(world, iblockstate, p_187103_1_, this.field_78776_a.field_71439_g);
{
ItemStack itemstack1 = this.field_78776_a.field_71439_g.func_184614_ca();
+ ItemStack copyBeforeUse = itemstack1.func_77946_l();
- if (itemstack1.field_77994_a == 0)
+ if (itemstack1.field_77994_a <= 0)
if (!itemstack1.func_190926_b())
{
@@ -163,11 +163,18 @@
if (itemstack1.func_190926_b())
{
+ net.minecraftforge.event.ForgeEventFactory.onPlayerDestroyItem(this.field_78776_a.field_71439_g, itemstack1, EnumHand.MAIN_HAND);
this.field_78776_a.field_71439_g.func_184611_a(EnumHand.MAIN_HAND, (ItemStack)null);
+ net.minecraftforge.event.ForgeEventFactory.onPlayerDestroyItem(this.field_78776_a.field_71439_g, copyBeforeUse, EnumHand.MAIN_HAND);
this.field_78776_a.field_71439_g.func_184611_a(EnumHand.MAIN_HAND, ItemStack.field_190927_a);
}
}
}
@@ -50,7 +58,7 @@
return flag;
}
}
@@ -208,6 +214,7 @@
@@ -207,6 +214,7 @@
if (this.field_78779_k.func_77145_d())
{
this.field_78774_b.func_147297_a(new CPacketPlayerDigging(CPacketPlayerDigging.Action.START_DESTROY_BLOCK, p_180511_1_, p_180511_2_));
@@ -58,7 +66,7 @@
func_178891_a(this.field_78776_a, this, p_180511_1_, p_180511_2_);
this.field_78781_i = 5;
}
@@ -219,14 +226,17 @@
@@ -218,14 +226,17 @@
}
this.field_78774_b.func_147297_a(new CPacketPlayerDigging(CPacketPlayerDigging.Action.START_DESTROY_BLOCK, p_180511_1_, p_180511_2_));
@@ -77,7 +85,7 @@
if (flag && iblockstate.func_185903_a(this.field_78776_a.field_71439_g, this.field_78776_a.field_71439_g.field_70170_p, p_180511_1_) >= 1.0F)
{
this.func_187103_a(p_180511_1_);
@@ -290,7 +300,7 @@
@@ -289,7 +300,7 @@
if (this.field_78780_h % 4.0F == 0.0F)
{
@@ -86,105 +94,110 @@
this.field_78776_a.func_147118_V().func_147682_a(new PositionedSoundRecord(soundtype.func_185846_f(), SoundCategory.NEUTRAL, (soundtype.func_185843_a() + 1.0F) / 8.0F, soundtype.func_185847_b() * 0.5F, p_180512_1_));
}
@@ -342,7 +352,7 @@
@@ -341,7 +352,7 @@
if (this.field_85183_f != null && itemstack != null)
if (!this.field_85183_f.func_190926_b() && !itemstack.func_190926_b())
{
- flag = itemstack.func_77973_b() == this.field_85183_f.func_77973_b() && ItemStack.func_77970_a(itemstack, this.field_85183_f) && (itemstack.func_77984_f() || itemstack.func_77960_j() == this.field_85183_f.func_77960_j());
+ flag = !net.minecraftforge.client.ForgeHooksClient.shouldCauseBlockBreakReset(this.field_85183_f, itemstack);
}
return p_178893_1_.equals(this.field_178895_c) && flag;
@@ -373,13 +383,32 @@
@@ -373,13 +384,34 @@
}
else
{
+ net.minecraftforge.event.entity.player.PlayerInteractEvent.RightClickBlock event = net.minecraftforge.common.ForgeHooks
+ .onRightClickBlock(p_187099_1_, p_187099_7_, p_187099_3_, p_187099_4_, p_187099_5_, net.minecraftforge.common.ForgeHooks.rayTraceEyeHitVec(p_187099_1_, func_78757_d() + 1));
+ .onRightClickBlock(p_187099_1_, p_187099_6_, p_187099_3_, p_187099_4_, net.minecraftforge.common.ForgeHooks.rayTraceEyeHitVec(p_187099_1_, func_78757_d() + 1));
+ if (event.isCanceled())
+ {
+ // Give the server a chance to fire event as well. That way server event is not dependant on client event.
+ this.field_78774_b.func_147297_a(new CPacketPlayerTryUseItemOnBlock(p_187099_4_, p_187099_5_, p_187099_7_, f, f1, f2));
+ return EnumActionResult.PASS;
+ this.field_78774_b.func_147297_a(new CPacketPlayerTryUseItemOnBlock(p_187099_3_, p_187099_4_, p_187099_6_, f, f1, f2));
+ return event.getCancellationResult();
+ }
+ EnumActionResult result = EnumActionResult.PASS;
+
if (this.field_78779_k != GameType.SPECTATOR)
{
+ net.minecraft.item.Item item = p_187099_3_ == null ? null : p_187099_3_.func_77973_b();
+ EnumActionResult ret = item == null ? EnumActionResult.PASS : item.onItemUseFirst(p_187099_3_, p_187099_1_, p_187099_2_, p_187099_4_, p_187099_5_, f, f1, f2, p_187099_7_);
+ if (ret != EnumActionResult.PASS) return ret;
+ EnumActionResult ret = itemstack.onItemUseFirst(p_187099_1_, p_187099_2_, p_187099_3_, p_187099_6_, p_187099_4_, f, f1, f2);
+ if (ret != EnumActionResult.PASS)
+ {
+ // The server needs to process the item use as well. Otherwise onItemUseFirst won't ever be called on the server without causing weird bugs
+ this.field_78774_b.func_147297_a(new CPacketPlayerTryUseItemOnBlock(p_187099_3_, p_187099_4_, p_187099_6_, f, f1, f2));
+ return ret;
+ }
+
IBlockState iblockstate = p_187099_2_.func_180495_p(p_187099_4_);
+ boolean bypass = true;
+ for (ItemStack s : new ItemStack[]{p_187099_1_.func_184614_ca(), p_187099_1_.func_184592_cb()}) //TODO: Expand to more hands? player.inv.getHands()?
+ bypass = bypass && (s == null || s.func_77973_b().doesSneakBypassUse(s, p_187099_2_, p_187099_4_, p_187099_1_));
IBlockState iblockstate = p_187099_2_.func_180495_p(p_187099_3_);
+ boolean bypass = itemstack.func_190926_b() || itemstack.func_77973_b().doesSneakBypassUse(itemstack, p_187099_2_, p_187099_3_, p_187099_1_);
- if ((!p_187099_1_.func_70093_af() || p_187099_1_.func_184614_ca() == null && p_187099_1_.func_184592_cb() == null) && iblockstate.func_177230_c().func_180639_a(p_187099_2_, p_187099_4_, iblockstate, p_187099_1_, p_187099_7_, p_187099_3_, p_187099_5_, f, f1, f2))
+ if (!p_187099_1_.func_70093_af() || bypass || event.getUseBlock() == net.minecraftforge.fml.common.eventhandler.Event.Result.ALLOW)
- if ((!p_187099_1_.func_70093_af() || p_187099_1_.func_184614_ca().func_190926_b() && p_187099_1_.func_184592_cb().func_190926_b()) && iblockstate.func_177230_c().func_180639_a(p_187099_2_, p_187099_3_, iblockstate, p_187099_1_, p_187099_6_, p_187099_4_, f, f1, f2))
+ if ((!p_187099_1_.func_70093_af() || bypass || event.getUseBlock() == net.minecraftforge.fml.common.eventhandler.Event.Result.ALLOW))
{
- flag = true;
+ if(event.getUseBlock() != net.minecraftforge.fml.common.eventhandler.Event.Result.DENY)
+ flag = iblockstate.func_177230_c().func_180639_a(p_187099_2_, p_187099_4_, iblockstate, p_187099_1_, p_187099_7_, p_187099_3_, p_187099_5_, f, f1, f2);
+ if(flag) result = EnumActionResult.SUCCESS;
+ if (event.getUseBlock() != net.minecraftforge.fml.common.eventhandler.Event.Result.DENY)
+ flag = iblockstate.func_177230_c().func_180639_a(p_187099_2_, p_187099_3_, iblockstate, p_187099_1_, p_187099_6_, p_187099_4_, f, f1, f2);
+ if (flag) result = EnumActionResult.SUCCESS;
}
if (!flag && p_187099_3_ != null && p_187099_3_.func_77973_b() instanceof ItemBlock)
@@ -395,7 +424,7 @@
if (!flag && itemstack.func_77973_b() instanceof ItemBlock)
@@ -395,7 +427,7 @@
this.field_78774_b.func_147297_a(new CPacketPlayerTryUseItemOnBlock(p_187099_4_, p_187099_5_, p_187099_7_, f, f1, f2));
this.field_78774_b.func_147297_a(new CPacketPlayerTryUseItemOnBlock(p_187099_3_, p_187099_4_, p_187099_6_, f, f1, f2));
- if (!flag && this.field_78779_k != GameType.SPECTATOR)
+ if (!flag && this.field_78779_k != GameType.SPECTATOR || event.getUseItem() == net.minecraftforge.fml.common.eventhandler.Event.Result.ALLOW)
{
if (p_187099_3_ == null)
if (itemstack.func_190926_b())
{
@@ -421,14 +450,19 @@
@@ -421,14 +453,20 @@
{
int i = p_187099_3_.func_77960_j();
int j = p_187099_3_.field_77994_a;
int i = itemstack.func_77960_j();
int j = itemstack.func_190916_E();
+ if (event.getUseItem() != net.minecraftforge.fml.common.eventhandler.Event.Result.DENY) {
EnumActionResult enumactionresult = p_187099_3_.func_179546_a(p_187099_1_, p_187099_2_, p_187099_4_, p_187099_7_, p_187099_5_, f, f1, f2);
p_187099_3_.func_77964_b(i);
p_187099_3_.field_77994_a = j;
EnumActionResult enumactionresult = itemstack.func_179546_a(p_187099_1_, p_187099_2_, p_187099_3_, p_187099_6_, p_187099_4_, f, f1, f2);
itemstack.func_77964_b(i);
itemstack.func_190920_e(j);
return enumactionresult;
+ } else return result;
}
else
{
- return p_187099_3_.func_179546_a(p_187099_1_, p_187099_2_, p_187099_4_, p_187099_7_, p_187099_5_, f, f1, f2);
- return itemstack.func_179546_a(p_187099_1_, p_187099_2_, p_187099_3_, p_187099_6_, p_187099_4_, f, f1, f2);
+ ItemStack copyForUse = itemstack.func_77946_l();
+ if (event.getUseItem() != net.minecraftforge.fml.common.eventhandler.Event.Result.DENY)
+ result = p_187099_3_.func_179546_a(p_187099_1_, p_187099_2_, p_187099_4_, p_187099_7_, p_187099_5_, f, f1, f2);
+ if (p_187099_3_.field_77994_a <= 0) net.minecraftforge.event.ForgeEventFactory.onPlayerDestroyItem(p_187099_1_, p_187099_3_, p_187099_7_);
+ result = itemstack.func_179546_a(p_187099_1_, p_187099_2_, p_187099_3_, p_187099_6_, p_187099_4_, f, f1, f2);
+ if (itemstack.func_190926_b()) net.minecraftforge.event.ForgeEventFactory.onPlayerDestroyItem(p_187099_1_, copyForUse, p_187099_6_);
+ return result;
}
}
}
@@ -456,6 +490,7 @@
@@ -457,6 +495,8 @@
}
else
{
+ if (net.minecraftforge.common.ForgeHooks.onItemRightClick(p_187101_1_, p_187101_4_, p_187101_3_)) return net.minecraft.util.EnumActionResult.PASS;
int i = p_187101_3_.field_77994_a;
ActionResult<ItemStack> actionresult = p_187101_3_.func_77957_a(p_187101_2_, p_187101_1_, p_187101_4_);
ItemStack itemstack = (ItemStack)actionresult.func_188398_b();
@@ -464,9 +499,10 @@
+ EnumActionResult cancelResult = net.minecraftforge.common.ForgeHooks.onItemRightClickAction(p_187101_1_, p_187101_3_);
+ if (cancelResult != null) return cancelResult;
int i = itemstack.func_190916_E();
ActionResult<ItemStack> actionresult = itemstack.func_77957_a(p_187101_2_, p_187101_1_, p_187101_3_);
ItemStack itemstack1 = (ItemStack)actionresult.func_188398_b();
@@ -464,6 +504,10 @@
if (itemstack1 != itemstack || itemstack1.func_190916_E() != i)
{
p_187101_1_.func_184611_a(p_187101_4_, itemstack);
- if (itemstack.field_77994_a == 0)
+ if (itemstack.field_77994_a <= 0)
{
p_187101_1_.func_184611_a(p_187101_4_, (ItemStack)null);
+ net.minecraftforge.event.ForgeEventFactory.onPlayerDestroyItem(p_187101_1_, itemstack, p_187101_4_);
}
p_187101_1_.func_184611_a(p_187101_3_, itemstack1);
+ if (itemstack1.func_190926_b())
+ {
+ net.minecraftforge.event.ForgeEventFactory.onPlayerDestroyItem(p_187101_1_, itemstack, p_187101_3_);
+ }
}
@@ -504,6 +540,7 @@
return actionresult.func_188397_a();
@@ -500,6 +544,9 @@
this.func_78750_j();
Vec3d vec3d = new Vec3d(p_187102_3_.field_72307_f.field_72450_a - p_187102_2_.field_70165_t, p_187102_3_.field_72307_f.field_72448_b - p_187102_2_.field_70163_u, p_187102_3_.field_72307_f.field_72449_c - p_187102_2_.field_70161_v);
this.field_78774_b.func_147297_a(new CPacketUseEntity(p_187102_2_, p_187102_5_, vec3d));
+ if(net.minecraftforge.common.ForgeHooks.onInteractEntityAt(p_187102_1_, p_187102_2_, p_187102_3_, p_187102_1_.func_184586_b(p_187102_5_), p_187102_5_)) return EnumActionResult.PASS;
return this.field_78779_k == GameType.SPECTATOR ? EnumActionResult.PASS : p_187102_2_.func_184199_a(p_187102_1_, vec3d, p_187102_4_, p_187102_5_);
this.field_78774_b.func_147297_a(new CPacketUseEntity(p_187102_2_, p_187102_4_, vec3d));
+ if (this.field_78779_k == GameType.SPECTATOR) return EnumActionResult.PASS; // don't fire for spectators to match non-specific EntityInteract
+ EnumActionResult cancelResult = net.minecraftforge.common.ForgeHooks.onInteractEntityAtAction(p_187102_1_, p_187102_2_, p_187102_3_, p_187102_4_);
+ if(cancelResult != null) return cancelResult;
return this.field_78779_k == GameType.SPECTATOR ? EnumActionResult.PASS : p_187102_2_.func_184199_a(p_187102_1_, vec3d, p_187102_4_);
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/client/network/NetHandlerLoginClient.java
+++ ../src-work/minecraft/net/minecraft/client/network/NetHandlerLoginClient.java
@@ -106,7 +106,10 @@
@@ -108,7 +108,10 @@
{
this.field_175091_e = p_147390_1_.func_179730_a();
this.field_147393_d.func_150723_a(EnumConnectionState.PLAY);
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/client/network/NetHandlerPlayClient.java
+++ ../src-work/minecraft/net/minecraft/client/network/NetHandlerPlayClient.java
@@ -271,7 +271,7 @@
@@ -280,7 +280,7 @@
{
PacketThreadUtil.func_180031_a(p_147282_1_, this, this.field_147299_f);
this.field_147299_f.field_71442_b = new PlayerControllerMP(this.field_147299_f, this);
@@ -9,7 +9,7 @@
this.field_147299_f.field_71474_y.field_74318_M = p_147282_1_.func_149192_g();
this.field_147299_f.func_71403_a(this.field_147300_g);
this.field_147299_f.field_71439_g.field_71093_bK = p_147282_1_.func_149194_f();
@@ -725,7 +725,7 @@
@@ -742,7 +742,7 @@
if (tileentity != null)
{
@@ -18,7 +18,7 @@
}
}
}
@@ -803,14 +803,16 @@
@@ -825,14 +825,16 @@
public void func_147251_a(SPacketChat p_147251_1_)
{
PacketThreadUtil.func_180031_a(p_147251_1_, this, this.field_147299_f);
@@ -37,19 +37,7 @@
}
}
@@ -866,6 +868,11 @@
float f = (float)(p_147281_1_.func_149028_l() * 360) / 256.0F;
float f1 = (float)(p_147281_1_.func_149030_m() * 360) / 256.0F;
EntityLivingBase entitylivingbase = (EntityLivingBase)EntityList.func_75616_a(p_147281_1_.func_149025_e(), this.field_147299_f.field_71441_e);
+ if (entitylivingbase == null)
+ {
+ net.minecraftforge.fml.common.FMLLog.info("Server attempted to spawn an unknown entity using ID: {0} at ({1}, {2}, {3}) Skipping!", p_147281_1_.func_149025_e(), d0, d1, d2);
+ return;
+ }
EntityTracker.func_187254_a(entitylivingbase, d0, d1, d2);
entitylivingbase.field_70761_aq = (float)(p_147281_1_.func_149032_n() * 360) / 256.0F;
entitylivingbase.field_70759_as = (float)(p_147281_1_.func_149032_n() * 360) / 256.0F;
@@ -938,7 +945,7 @@
@@ -964,7 +966,7 @@
if (entity1 == this.field_147299_f.field_71439_g && !flag)
{
@@ -58,7 +46,7 @@
}
}
}
@@ -1169,6 +1176,15 @@
@@ -1211,6 +1213,15 @@
{
tileentity.func_145839_a(p_147273_1_.func_148857_g());
}
@@ -74,7 +62,7 @@
if (flag && this.field_147299_f.field_71462_r instanceof GuiCommandBlock)
{
@@ -1266,15 +1282,15 @@
@@ -1308,15 +1319,15 @@
}
else if (f == 101.0F)
{
@@ -93,7 +81,7 @@
}
}
else if (i == 6)
@@ -1368,7 +1384,7 @@
@@ -1430,7 +1441,7 @@
if (entity instanceof EntityLivingBase)
{
@@ -12,8 +12,8 @@
try
{
- networkmanager.func_179290_a(new C00Handshake(210, serveraddress.func_78861_a(), serveraddress.func_78864_b(), EnumConnectionState.STATUS));
+ networkmanager.func_179290_a(new C00Handshake(210, serveraddress.func_78861_a(), serveraddress.func_78864_b(), EnumConnectionState.STATUS, true));
- networkmanager.func_179290_a(new C00Handshake(316, serveraddress.func_78861_a(), serveraddress.func_78864_b(), EnumConnectionState.STATUS));
+ networkmanager.func_179290_a(new C00Handshake(316, serveraddress.func_78861_a(), serveraddress.func_78864_b(), EnumConnectionState.STATUS, true));
networkmanager.func_179290_a(new CPacketServerQuery());
}
catch (Throwable throwable)
@@ -0,0 +1,29 @@
--- ../src-base/minecraft/net/minecraft/client/particle/Particle.java
+++ ../src-work/minecraft/net/minecraft/client/particle/Particle.java
@@ -283,6 +283,8 @@
public void func_187110_a(double p_187110_1_, double p_187110_3_, double p_187110_5_)
{
double d0 = p_187110_3_;
+ double origX = p_187110_1_;
+ double origZ = p_187110_5_;
if (this.field_190017_n)
{
@@ -315,14 +317,14 @@
}
this.func_187118_j();
- this.field_187132_l = p_187110_3_ != p_187110_3_ && d0 < 0.0D;
+ this.field_187132_l = d0 != p_187110_3_ && d0 < 0.0D;
- if (p_187110_1_ != p_187110_1_)
+ if (origX != p_187110_1_)
{
this.field_187129_i = 0.0D;
}
- if (p_187110_5_ != p_187110_5_)
+ if (origZ != p_187110_5_)
{
this.field_187131_k = 0.0D;
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/client/particle/ParticleManager.java
+++ ../src-work/minecraft/net/minecraft/client/particle/ParticleManager.java
@@ -146,6 +146,7 @@
@@ -153,6 +153,7 @@
public void func_78873_a(Particle p_78873_1_)
{
@@ -8,7 +8,7 @@
this.field_187241_h.add(p_78873_1_);
}
@@ -380,7 +381,7 @@
@@ -387,7 +388,7 @@
public void func_180533_a(BlockPos p_180533_1_, IBlockState p_180533_2_)
{
@@ -17,7 +17,7 @@
{
p_180533_2_ = p_180533_2_.func_185899_b(this.field_78878_a, p_180533_1_);
int i = 4;
@@ -464,4 +465,13 @@
@@ -471,4 +472,13 @@
return "" + i;
}
@@ -0,0 +1,17 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/ActiveRenderInfo.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/ActiveRenderInfo.java
@@ -108,4 +108,14 @@
{
return field_74596_h;
}
+
+ /* ======================================== FORGE START =====================================*/
+
+ /**
+ * Vector from render view entity position (corrected for partialTickTime) to the middle of screen
+ */
+ public static Vec3d getCameraPosition()
+ {
+ return field_178811_e;
+ }
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/BlockModelRenderer.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/BlockModelRenderer.java
@@ -141,7 +141,14 @@
@@ -128,7 +128,14 @@
p_187492_8_.func_187491_a(p_187492_1_, p_187492_2_, p_187492_3_, bakedquad.func_178210_d(), p_187492_6_, p_187492_7_);
p_187492_4_.func_178981_a(bakedquad.func_178209_a());
p_187492_4_.func_178962_a(p_187492_8_.field_178207_c[0], p_187492_8_.field_178207_c[1], p_187492_8_.field_178207_c[2], p_187492_8_.field_178207_c[3]);
@@ -16,10 +16,10 @@
if (bakedquad.func_178212_b())
{
int k = this.field_187499_a.func_186724_a(p_187492_2_, p_187492_1_, p_187492_3_, bakedquad.func_178211_c());
@@ -291,11 +298,26 @@
float f = (float)(j1 >> 16 & 255) / 255.0F;
float f1 = (float)(j1 >> 8 & 255) / 255.0F;
float f2 = (float)(j1 & 255) / 255.0F;
@@ -262,11 +269,26 @@
float f = (float)(k >> 16 & 255) / 255.0F;
float f1 = (float)(k >> 8 & 255) / 255.0F;
float f2 = (float)(k & 255) / 255.0F;
+ if(bakedquad.shouldApplyDiffuseLighting())
+ {
+ float diffuse = net.minecraftforge.client.model.pipeline.LightUtil.diffuseLight(bakedquad.func_178210_d());
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/BlockModelShapes.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/BlockModelShapes.java
@@ -307,5 +307,6 @@
@@ -392,5 +392,6 @@
return new ModelResourceLocation(s + "_double_slab", s1);
}
});
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/BlockRendererDispatcher.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/BlockRendererDispatcher.java
@@ -29,7 +29,7 @@
@@ -28,7 +28,7 @@
public BlockRendererDispatcher(BlockModelShapes p_i46577_1_, BlockColors p_i46577_2_)
{
this.field_175028_a = p_i46577_1_;
@@ -9,7 +9,7 @@
this.field_175025_e = new BlockFluidRenderer(p_i46577_2_);
}
@@ -44,7 +44,7 @@
@@ -43,7 +43,7 @@
{
p_175020_1_ = p_175020_1_.func_185899_b(p_175020_4_, p_175020_2_);
IBakedModel ibakedmodel = this.field_175028_a.func_178125_b(p_175020_1_);
@@ -18,7 +18,7 @@
this.field_175027_c.func_178267_a(p_175020_4_, ibakedmodel1, p_175020_1_, p_175020_2_, Tessellator.func_178181_a().func_178180_c(), true);
}
}
@@ -76,7 +76,9 @@
@@ -75,7 +75,9 @@
switch (enumblockrendertype)
{
case MODEL:
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/EntityRenderer.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/EntityRenderer.java
@@ -207,6 +207,7 @@
@@ -212,6 +212,7 @@
{
this.func_175069_a(new ResourceLocation("shaders/post/invert.json"));
}
@@ -8,16 +8,16 @@
}
}
@@ -398,7 +399,7 @@
@@ -413,7 +414,7 @@
if (d3 < d2 || d2 == 0.0D)
{
- if (entity1.func_184208_bv() == entity.func_184208_bv())
+ if (entity1.func_184208_bv() == entity.func_184208_bv() && !entity.canRiderInteract())
+ if (entity1.func_184208_bv() == entity.func_184208_bv() && !entity1.canRiderInteract())
{
if (d2 == 0.0D)
{
@@ -491,7 +492,7 @@
@@ -506,7 +507,7 @@
f = f * 60.0F / 70.0F;
}
@@ -26,7 +26,7 @@
}
}
@@ -555,14 +556,8 @@
@@ -570,14 +571,8 @@
{
BlockPos blockpos = new BlockPos(entity);
IBlockState iblockstate = this.field_78531_r.field_71441_e.func_180495_p(blockpos);
@@ -42,7 +42,7 @@
GlStateManager.func_179114_b(entity.field_70126_B + (entity.field_70177_z - entity.field_70126_B) * p_78467_1_ + 180.0F, 0.0F, -1.0F, 0.0F);
GlStateManager.func_179114_b(entity.field_70127_C + (entity.field_70125_A - entity.field_70127_C) * p_78467_1_, -1.0F, 0.0F, 0.0F);
}
@@ -629,17 +624,20 @@
@@ -644,17 +639,20 @@
if (!this.field_78531_r.field_71474_y.field_74325_U)
{
@@ -70,7 +70,7 @@
}
GlStateManager.func_179109_b(0.0F, -f, 0.0F);
@@ -757,6 +755,7 @@
@@ -772,6 +770,7 @@
boolean flag = this.field_78531_r.func_175606_aa() instanceof EntityLivingBase && ((EntityLivingBase)this.field_78531_r.func_175606_aa()).func_70608_bn();
@@ -78,7 +78,29 @@
if (this.field_78531_r.field_71474_y.field_74320_O == 0 && !flag && !this.field_78531_r.field_71474_y.field_74319_N && !this.field_78531_r.field_71442_b.func_78747_a())
{
this.func_180436_i();
@@ -1092,7 +1091,7 @@
@@ -876,6 +875,10 @@
f10 = 0.25F + f7 * 0.75F;
}
+ float[] colors = {f8, f9, f10};
+ world.field_73011_w.getLightmapColors(p_78472_1_, f, f2, f3, colors);
+ f8 = colors[0]; f9 = colors[1]; f10 = colors[2];
+
if (this.field_78531_r.field_71439_g.func_70644_a(MobEffects.field_76439_r))
{
float f15 = this.func_180438_a(this.field_78531_r.field_71439_g, p_78472_1_);
@@ -1101,6 +1104,10 @@
GlStateManager.func_179096_D();
this.func_78478_c();
this.field_78510_Z = System.nanoTime();
+ // Forge: Fix MC-112292
+ net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher.field_147556_a.field_147553_e = this.field_78531_r.func_110434_K();
+ // Forge: also fix rendering text before entering world (not part of MC-112292, but the same reason)
+ net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher.field_147556_a.field_147557_n = this.field_78531_r.field_71466_p;
}
if (this.field_78531_r.field_71462_r != null)
@@ -1109,7 +1116,7 @@
try
{
@@ -87,7 +109,7 @@
}
catch (Throwable throwable)
{
@@ -1187,7 +1186,7 @@
@@ -1204,7 +1211,7 @@
if (this.field_78531_r.field_71442_b.func_178889_l() == GameType.SPECTATOR)
{
@@ -96,7 +118,7 @@
}
else
{
@@ -1312,7 +1311,9 @@
@@ -1329,7 +1336,9 @@
GlStateManager.func_179094_E();
RenderHelper.func_74519_b();
this.field_78531_r.field_71424_I.func_76318_c("entities");
@@ -106,7 +128,7 @@
RenderHelper.func_74518_a();
this.func_175072_h();
}
@@ -1325,6 +1326,7 @@
@@ -1342,6 +1351,7 @@
EntityPlayer entityplayer = (EntityPlayer)entity;
GlStateManager.func_179118_c();
this.field_78531_r.field_71424_I.func_76318_c("outline");
@@ -114,7 +136,7 @@
renderglobal.func_72731_b(entityplayer, this.field_78531_r.field_71476_x, 0, p_175068_2_);
GlStateManager.func_179141_d();
}
@@ -1371,6 +1373,17 @@
@@ -1388,6 +1398,17 @@
GlStateManager.func_179103_j(7425);
this.field_78531_r.field_71424_I.func_76318_c("translucent");
renderglobal.func_174977_a(BlockRenderLayer.TRANSLUCENT, (double)p_175068_2_, p_175068_1_, entity);
@@ -132,8 +154,8 @@
GlStateManager.func_179103_j(7424);
GlStateManager.func_179132_a(true);
GlStateManager.func_179089_o();
@@ -1383,6 +1396,9 @@
this.func_180437_a(renderglobal, p_175068_2_, p_175068_1_);
@@ -1400,6 +1421,9 @@
this.func_180437_a(renderglobal, p_175068_2_, p_175068_1_, d0, d1, d2);
}
+ this.field_78531_r.field_71424_I.func_76318_c("forge_render_last");
@@ -142,7 +164,7 @@
this.field_78531_r.field_71424_I.func_76318_c("hand");
if (this.field_175074_C)
@@ -1498,6 +1514,13 @@
@@ -1515,6 +1539,13 @@
protected void func_78474_d(float p_78474_1_)
{
@@ -156,7 +178,7 @@
float f = this.field_78531_r.field_71441_e.func_72867_j(p_78474_1_);
if (f > 0.0F)
@@ -1828,6 +1851,13 @@
@@ -1845,6 +1876,13 @@
this.field_175081_S = f7;
}
@@ -170,7 +192,7 @@
GlStateManager.func_179082_a(this.field_175080_Q, this.field_175082_R, this.field_175081_S, 0.0F);
}
@@ -1838,7 +1868,9 @@
@@ -1855,7 +1893,9 @@
GlStateManager.func_187432_a(0.0F, -1.0F, 0.0F);
GlStateManager.func_179131_c(1.0F, 1.0F, 1.0F, 1.0F);
IBlockState iblockstate = ActiveRenderInfo.func_186703_a(this.field_78531_r.field_71441_e, entity, p_78468_2_);
@@ -181,7 +203,7 @@
if (entity instanceof EntityLivingBase && ((EntityLivingBase)entity).func_70644_a(MobEffects.field_76440_q))
{
float f1 = 5.0F;
@@ -1923,6 +1955,7 @@
@@ -1940,6 +1980,7 @@
GlStateManager.func_179102_b(f * 0.05F);
GlStateManager.func_179153_c(Math.min(f, 192.0F) * 0.5F);
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/ItemRenderer.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/ItemRenderer.java
@@ -317,7 +317,7 @@
@@ -311,7 +311,7 @@
{
ItemStack itemstack = abstractclientplayer.func_184607_cu();
@@ -9,7 +9,7 @@
{
EnumHand enumhand1 = abstractclientplayer.func_184600_cs();
flag = enumhand1 == EnumHand.MAIN_HAND;
@@ -334,6 +334,7 @@
@@ -328,6 +328,7 @@
{
float f3 = enumhand == EnumHand.MAIN_HAND ? f : 0.0F;
float f5 = 1.0F - (this.field_187470_g + (this.field_187469_f - this.field_187470_g) * p_78440_1_);
@@ -17,7 +17,7 @@
this.func_187457_a(abstractclientplayer, p_78440_1_, f1, EnumHand.MAIN_HAND, f3, this.field_187467_d, f5);
}
@@ -341,6 +342,7 @@
@@ -335,6 +336,7 @@
{
float f4 = enumhand == EnumHand.OFF_HAND ? f : 0.0F;
float f6 = 1.0F - (this.field_187472_i + (this.field_187471_h - this.field_187472_i) * p_78440_1_);
@@ -25,16 +25,16 @@
this.func_187457_a(abstractclientplayer, p_78440_1_, f1, EnumHand.OFF_HAND, f4, this.field_187468_e, f6);
}
@@ -361,7 +363,7 @@
@@ -355,7 +357,7 @@
this.func_187456_a(p_187457_7_, p_187457_5_, enumhandside);
}
}
- else if (p_187457_6_.func_77973_b() == Items.field_151098_aY)
+ else if (p_187457_6_.func_77973_b() instanceof net.minecraft.item.ItemMap)
{
if (flag && this.field_187468_e == null)
if (flag && this.field_187468_e.func_190926_b())
{
@@ -445,6 +447,7 @@
@@ -439,6 +441,7 @@
if (this.field_78455_a.field_71439_g.func_70094_T())
{
IBlockState iblockstate = this.field_78455_a.field_71441_e.func_180495_p(new BlockPos(this.field_78455_a.field_71439_g));
@@ -42,8 +42,8 @@
EntityPlayer entityplayer = this.field_78455_a.field_71439_g;
for (int i = 0; i < 8; ++i)
@@ -458,11 +461,13 @@
if (iblockstate1.func_177230_c().func_176214_u())
@@ -452,11 +455,13 @@
if (iblockstate1.func_191058_s())
{
iblockstate = iblockstate1;
+ overlayPos = blockpos;
@@ -56,7 +56,7 @@
this.func_178108_a(p_78447_1_, this.field_78455_a.func_175602_ab().func_175023_a().func_178122_a(iblockstate));
}
}
@@ -471,11 +476,13 @@
@@ -465,11 +470,13 @@
{
if (this.field_78455_a.field_71439_g.func_70055_a(Material.field_151586_h))
{
@@ -70,7 +70,7 @@
this.func_78442_d(p_78447_1_);
}
}
@@ -597,8 +604,8 @@
@@ -591,8 +598,8 @@
else
{
float f = entityplayersp.func_184825_o(1.0F);
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/OpenGlHelper.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/OpenGlHelper.java
@@ -92,6 +92,10 @@
@@ -93,6 +93,10 @@
public static int field_176089_P;
public static int field_148826_e;
@@ -11,7 +11,7 @@
public static void func_77474_a()
{
ContextCapabilities contextcapabilities = GLContext.getCapabilities();
@@ -852,6 +856,12 @@
@@ -853,6 +857,12 @@
{
GL13.glMultiTexCoord2f(p_77475_0_, p_77475_1_, p_77475_2_);
}
@@ -1,14 +1,6 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/RenderGlobal.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/RenderGlobal.java
@@ -456,6 +456,7 @@
{
this.field_175009_l.clear();
this.field_72755_R.clear();
+ if (field_175008_n != null) field_175008_n.func_178160_a(); // Forge: Fix MC-105406
this.field_175008_n = null;
if (this.field_174995_M != null)
@@ -548,8 +549,10 @@
@@ -551,8 +551,10 @@
public void func_180446_a(Entity p_180446_1_, ICamera p_180446_2_, float p_180446_3_)
{
@@ -19,7 +11,7 @@
--this.field_72740_G;
}
else
@@ -560,9 +563,12 @@
@@ -563,9 +565,12 @@
this.field_72769_h.field_72984_F.func_76320_a("prepare");
TileEntityRendererDispatcher.field_147556_a.func_190056_a(this.field_72769_h, this.field_72777_q.func_110434_K(), this.field_72777_q.field_71466_p, this.field_72777_q.func_175606_aa(), this.field_72777_q.field_71476_x, p_180446_3_);
this.field_175010_j.func_180597_a(this.field_72769_h, this.field_72777_q.field_71466_p, this.field_72777_q.func_175606_aa(), this.field_72777_q.field_147125_j, this.field_72777_q.field_71474_y, p_180446_3_);
@@ -32,7 +24,7 @@
Entity entity = this.field_72777_q.func_175606_aa();
double d3 = entity.field_70142_S + (entity.field_70165_t - entity.field_70142_S) * (double)p_180446_3_;
double d4 = entity.field_70137_T + (entity.field_70163_u - entity.field_70137_T) * (double)p_180446_3_;
@@ -574,11 +580,15 @@
@@ -577,11 +582,15 @@
this.field_72777_q.field_71460_t.func_180436_i();
this.field_72769_h.field_72984_F.func_76318_c("global");
List<Entity> list = this.field_72769_h.func_72910_y();
@@ -48,7 +40,7 @@
++this.field_72749_I;
if (entity1.func_145770_h(d0, d1, d2))
@@ -601,6 +611,7 @@
@@ -604,6 +613,7 @@
{
for (Entity entity2 : classinheritancemultimap)
{
@@ -56,7 +48,7 @@
boolean flag = this.field_175010_j.func_178635_a(entity2, p_180446_2_, d0, d1, d2) || entity2.func_184215_y(this.field_72777_q.field_71439_g);
if (flag)
@@ -637,6 +648,7 @@
@@ -640,6 +650,7 @@
}
}
@@ -64,7 +56,7 @@
if (this.func_174985_d() && (!list1.isEmpty() || this.field_184386_ad))
{
this.field_72769_h.field_72984_F.func_76318_c("entityOutlines");
@@ -676,6 +688,7 @@
@@ -679,6 +690,7 @@
this.field_72769_h.field_72984_F.func_76318_c("blockentities");
RenderHelper.func_74519_b();
@@ -72,7 +64,7 @@
for (RenderGlobal.ContainerLocalRenderInformation renderglobal$containerlocalrenderinformation1 : this.field_72755_R)
{
List<TileEntity> list3 = renderglobal$containerlocalrenderinformation1.field_178036_a.func_178571_g().func_178485_b();
@@ -684,6 +697,7 @@
@@ -687,6 +699,7 @@
{
for (TileEntity tileentity2 : list3)
{
@@ -80,7 +72,7 @@
TileEntityRendererDispatcher.field_147556_a.func_180546_a(tileentity2, p_180446_3_, -1);
}
}
@@ -693,9 +707,11 @@
@@ -696,9 +709,11 @@
{
for (TileEntity tileentity : this.field_181024_n)
{
@@ -92,16 +84,7 @@
this.func_180443_s();
@@ -722,7 +738,7 @@
Block block = this.field_72769_h.func_180495_p(blockpos).func_177230_c();
- if (tileentity1 != null && (block instanceof BlockChest || block instanceof BlockEnderChest || block instanceof BlockSign || block instanceof BlockSkull))
+ if (tileentity1 != null && tileentity1.shouldRenderInPass(pass) && tileentity1.canRenderBreaking() && p_180446_2_.func_78546_a(tileentity1.getRenderBoundingBox()))
{
TileEntityRendererDispatcher.field_147556_a.func_180546_a(tileentity1, p_180446_3_, destroyblockprogress.func_73106_e());
}
@@ -926,7 +942,7 @@
@@ -933,7 +948,7 @@
BlockPos blockpos2 = renderchunk4.func_178568_j().func_177982_a(8, 8, 8);
boolean flag3 = blockpos2.func_177951_i(blockpos1) < 768.0D;
@@ -110,7 +93,7 @@
{
this.field_175009_l.add(renderchunk4);
}
@@ -1213,6 +1229,13 @@
@@ -1220,6 +1235,13 @@
public void func_174976_a(float p_174976_1_, int p_174976_2_)
{
@@ -124,9 +107,9 @@
if (this.field_72777_q.field_71441_e.field_73011_w.func_186058_p().func_186068_a() == 1)
{
this.func_180448_r();
@@ -1430,6 +1453,12 @@
@@ -1437,6 +1459,12 @@
public void func_180447_b(float p_180447_1_, int p_180447_2_)
public void func_180447_b(float p_180447_1_, int p_180447_2_, double p_180447_3_, double p_180447_5_, double p_180447_7_)
{
+ net.minecraftforge.client.IRenderHandler renderer = this.field_72777_q.field_71441_e.field_73011_w.getCloudRenderer();
+ if (renderer != null)
@@ -137,7 +120,7 @@
if (this.field_72777_q.field_71441_e.field_73011_w.func_76569_d())
{
if (this.field_72777_q.field_71474_y.func_181147_e() == 2)
@@ -1857,8 +1886,11 @@
@@ -1859,8 +1887,11 @@
double d4 = (double)blockpos.func_177956_o() - d1;
double d5 = (double)blockpos.func_177952_p() - d2;
Block block = this.field_72769_h.func_180495_p(blockpos).func_177230_c();
@@ -150,7 +133,7 @@
{
if (d3 * d3 + d4 * d4 + d5 * d5 > 1024.0D)
{
@@ -2304,7 +2336,7 @@
@@ -2328,7 +2359,7 @@
if (block.func_176223_P().func_185904_a() != Material.field_151579_a)
{
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/RenderItem.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/RenderItem.java
@@ -72,7 +72,7 @@
@@ -71,7 +71,7 @@
public RenderItem(TextureManager p_i46552_1_, ModelManager p_i46552_2_, ItemColors p_i46552_3_)
{
this.field_175057_n = p_i46552_1_;
@@ -9,7 +9,7 @@
this.func_175041_b();
this.field_184395_f = p_i46552_3_;
}
@@ -224,7 +224,7 @@
@@ -223,7 +223,7 @@
k = k | -16777216;
}
@@ -18,7 +18,7 @@
}
}
@@ -246,17 +246,7 @@
@@ -245,17 +245,7 @@
public IBakedModel func_184393_a(ItemStack p_184393_1_, @Nullable World p_184393_2_, @Nullable EntityLivingBase p_184393_3_)
{
IBakedModel ibakedmodel = this.field_175059_m.func_178089_a(p_184393_1_);
@@ -37,7 +37,7 @@
}
public void func_184392_a(ItemStack p_184392_1_, EntityLivingBase p_184392_2_, ItemCameraTransforms.TransformType p_184392_3_, boolean p_184392_4_)
@@ -280,14 +270,9 @@
@@ -279,14 +269,9 @@
GlStateManager.func_179147_l();
GlStateManager.func_187428_a(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
GlStateManager.func_179094_E();
@@ -54,7 +54,7 @@
this.func_180454_a(p_184394_1_, p_184394_2_);
GlStateManager.func_187407_a(GlStateManager.CullFace.BACK);
GlStateManager.func_179121_F();
@@ -320,7 +305,7 @@
@@ -319,7 +304,7 @@
GlStateManager.func_187401_a(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA);
GlStateManager.func_179131_c(1.0F, 1.0F, 1.0F, 1.0F);
this.func_180452_a(p_184390_2_, p_184390_3_, p_184390_4_.func_177556_c());
@@ -63,7 +63,7 @@
this.func_180454_a(p_184390_1_, p_184390_4_);
GlStateManager.func_179118_c();
GlStateManager.func_179101_C();
@@ -425,12 +410,16 @@
@@ -418,9 +403,12 @@
p_180453_1_.func_175063_a(s, (float)(p_180453_3_ + 19 - 2 - p_180453_1_.func_78256_a(s)), (float)(p_180453_4_ + 6 + 3), 16777215);
GlStateManager.func_179145_e();
GlStateManager.func_179126_j();
@@ -75,15 +75,25 @@
- if (p_180453_2_.func_77951_h())
+ if (p_180453_2_.func_77973_b().showDurabilityBar(p_180453_2_))
{
- int j = (int)Math.round(13.0D - (double)p_180453_2_.func_77952_i() * 13.0D / (double)p_180453_2_.func_77958_k());
- int i = (int)Math.round(255.0D - (double)p_180453_2_.func_77952_i() * 255.0D / (double)p_180453_2_.func_77958_k());
+ double health = p_180453_2_.func_77973_b().getDurabilityForDisplay(p_180453_2_);
+ int j = (int)Math.round(13.0D - health * 13.0D);
+ int i = (int)Math.round(255.0D - health * 255.0D);
GlStateManager.func_179140_f();
GlStateManager.func_179097_i();
GlStateManager.func_179090_x();
@@ -1059,6 +1048,7 @@
@@ -429,11 +417,10 @@
GlStateManager.func_179084_k();
Tessellator tessellator = Tessellator.func_178181_a();
VertexBuffer vertexbuffer = tessellator.func_178180_c();
- float f = (float)p_180453_2_.func_77952_i();
- float f1 = (float)p_180453_2_.func_77958_k();
- float f2 = Math.max(0.0F, (f1 - f) / f1);
- int i = Math.round(13.0F - f * 13.0F / f1);
- int j = MathHelper.func_181758_c(f2 / 3.0F, 1.0F, 1.0F);
+ double health = p_180453_2_.func_77973_b().getDurabilityForDisplay(p_180453_2_);
+ int rgbfordisplay = p_180453_2_.func_77973_b().getRGBDurabilityForDisplay(p_180453_2_);
+ int i = Math.round(13.0F - (float)health * 13.0F);
+ int j = rgbfordisplay;
this.func_181565_a(vertexbuffer, p_180453_3_ + 2, p_180453_4_ + 13, 13, 2, 0, 0, 0, 255);
this.func_181565_a(vertexbuffer, p_180453_3_ + 2, p_180453_4_ + 13, i, 1, j >> 16 & 255, j >> 8 & 255, j & 255, 255);
GlStateManager.func_179147_l();
@@ -1074,6 +1061,7 @@
this.func_175029_a(Blocks.field_185779_df, TileEntityStructure.Mode.LOAD.func_185110_a(), "structure_block");
this.func_175029_a(Blocks.field_185779_df, TileEntityStructure.Mode.CORNER.func_185110_a(), "structure_block");
this.func_175029_a(Blocks.field_185779_df, TileEntityStructure.Mode.DATA.func_185110_a(), "structure_block");
@@ -8,15 +8,14 @@
public ResourceLocation func_188021_a(ItemStack p_188021_1_, @Nullable World p_188021_2_, @Nullable EntityLivingBase p_188021_3_)
{
if (!this.field_188023_b.isEmpty())
@@ -44,4 +45,23 @@
@@ -44,4 +45,22 @@
return null;
}
+
+ public IBakedModel handleItemState(IBakedModel originalModel, ItemStack stack, World world, EntityLivingBase entity)
+ public IBakedModel handleItemState(IBakedModel originalModel, ItemStack stack, @Nullable World world, @Nullable EntityLivingBase entity)
+ {
+ net.minecraft.item.Item item = stack.func_77973_b();
+ if (item != null && item.func_185040_i())
+ if (!stack.func_190926_b() && stack.func_77973_b().func_185040_i())
+ {
+ ResourceLocation location = func_188021_a(stack, world, entity);
+ if (location != null)
Loaded 100 of 753 files, more files were not shown because too many files have changed in this diff. Show more