Set the destination block the to the fluid.
In the previous code the destination block was still Air and would would
cause a crash because air doesn't have a property for LEVEL
Entry point: ModelLoaderRegistry
loader interface: ICustomModelLoader
custom model: IModel
ModelLoader is responsible for splicing into vanilla model system.
(you probably don't need to use it directly)
Interop with vanilla models isn't great yet
(vanilla models can't refer to custom ones as parents), will improve in
the future.
Includes loader for B3D models, with animation support
(net.minecraftforge.client.model.b3d).
Blender export plugin with compatible coordinate system:
https://github.com/RainWarrior/B3DExport
OBJ loader is being written, will be included at some point in the
future. For now you can convert OBJ to B3D via blender, or wait.
Some notes:
Almost all int x, int y, int z parameters have been changed to BlockPos class
ForgeDirection has been removed, replaced by net.minecraft.util.EnumFacing.
All FML classes have moved from packet cpw.mods.fml to net.minecraftforge.fml
Fluid Rendering has been disabled for the time being, to be re-evaulated and a test mod created for it.
Minecraft now uses a Model based system for rendering blocks and Items. The intention is to expand the model format to better suit modder's needed once it is evaulated.
As such, The model loaders from Forge have been removed, to be replaced by expanding vanilla's model format.
Metadata has been extracted out in Minecraft to IBlockState, which holds a list of properties instead of magic number metadata. DO NOT listen to the fearmongering, you can do EVERYTHING with block states you could previously with metadata.
Stencil Bits are disabled entirely by for the main Display, Modders must enable and recreate the FrameBuffer if they wish to use Stencil Bits.
Changes the updateWeather function in WorldServer to only send the
weather info to players in the correct dimension, rather than all
players on the server. This is what causes the client-side rain, as the
client believes that it has started raining locally, rather than in
another dimension.
Before calling "ItemStack.tryPlaceItemInWorld", a recording flag is turned on for
setBlock to capture a blocksnapshot for each block that attempts to be placed.
If 1 block is captured, a "BlockEvent.PlaceEvent" is fired to notify mods.
If 2 or more blocks are captured, a "BlockEvent.PlaceEvent" is fired first with the first block
captured followed by a "BlockEvent.MultiPlaceEvent" with all captured blocks. This extra event
is required for items that have the ability to place 2 or more blocks such as a BlockBed.
If either event is cancelled, the recorded block snapshot(s), item stacksize, and item meta will
revert back to the captured snapshot(s).
If the events are not cancelled, a notification will be sent to clients and block physics will be updated.
What this means for mods is Forge will be able to capture all player block placement automatically and fire
a PlaceEvent and/or MultiPlaceEvent.
If for whatever reason your mod does not use the standard placement methods then you will need to fire the
appropriate placement events in order to notify mods/servers.
This commit also includes a new utility class called BlockSnapshot which is serializable. This new class is used in conjunction with
both PlaceEvent and MultiPlaceEvent in order to record a snapshot of block space before it is altered. This
allows us to restore the block(s) if an event is cancelled. The class also provides the ability to restore a snapshot
to any location using the restoreToLocation method. This should be helpful to many mods that are looking to be able
to capture block data then restore it to back to any location required.
MinecraftForge/FML@5365f5ea3e Add IEventExceptionHandler for EventBus to allow special handeling exceptions that are fired while running an event. Events now track what 'phase' they are in during the execution process. Each EventPriority is a 'phase'. An exception is thrown if the event attempts to set its phase to a previous one.
Blender names objects with .001 ir .002 when separating vertices or duplicating objects and the importer would crash on them. This fixes the regex to allow dots in the name.
MinecraftForge/FML@cbe2ccbda4 Add in ModType to the jar manifest. If it's present, and doesn't have value "FML" it will be skipped from the modloading cycle. This should let liteloader mods have a .jar extension.
MinecraftForge/FML@37cf0174fc OK, lets make that a csv list. It'll let you be liteloader and fml in one jar file!
MinecraftForge/FML@0475b15eb1 Change the mods and modListFile argument handling a bit. Other tweakers will get a chance at looking at them now - they're only removed right before launch.
MinecraftForge/FML@abeac06a2e Two new features. ModLists can have a "parent" mod list. Circularity will result in a crash, so be careful. Mods specified in a child will override ones from a parent (using the maven group:name:classifier triple to identify - ignoring the version component)
MinecraftForge/FML@7fcfedcfef Canonicalized file paths in modListFile handling with the minecraftDirectory.
MinecraftForge/FML@633fce19d4 Make Keyevent also fire for key releases
MinecraftForge/FML@57ba2339b6 Merge branch 'keyup-event' of github.com:diesieben07/FML
MinecraftForge/FML@1ff048062c Merge branch 'simple-netw-improve' of github.com:diesieben07/FML
might see two TEs for a single setblock where previously you saw one. This is a phantom TE being created by badly written neighbour triggers - I'm looking at you
redstone.
Anyway, with luck, this'll close a slew of bugs across Forge, IC2, MFR, TE, RC. Yeah, fun times. Thanks to LexManos, skyboy and KingLemming for helping figure this
issue out. Quite frankly, from now on, issues with phantom TEs will be mods behaving badly. Modders will need to adapt.
* Added ability to AnvilUpdateEvent to alter stackSizeToBeUsedInRepair (vanilla behavior is now reproducable)
* Added AnvilRepairEvent, fired when the player removes an ItemStack from the output slot of ContainerRepair, and allows the chance to damage the anvil to be altered.
MinecraftForge/FML@ab52901b8b Force preferIPv4Stack to true early in the load chain to combat netty loopback issues.
MinecraftForge/FML@11893fbbb7 Add system property to skip doing world backups when game registry changes. This is SEVERLY ill-advised, if you do this DO NOT ask for any support.
MinecraftForge/FML@fdb6b34b8f Update authlib and realms to latest json data.
MinecraftForge/FML@b3a74882b4 added slider controls for numerics. default control is textbox, but slider can be used as a custom list entry class. fixed constructor javadocs in GuiConfig
MinecraftForge/FML@7c6d1f7568 Merge pull request #468 from bspkrs/master
MinecraftForge/FML@692d955c1a Update tweaker login to use authlib.
MinecraftForge/FML@c2119eb1c1 Update realms library to 1.3.1, and implement network latch when connecting to Realms. Tested and working.
Adds a Forge event which controls whether an overlay is rendered.
Overlays include: First-person fire, Block (when inside a block)
and water when a player is inside a water block.
Patched for easier manipulation of event
Fixed for Lex
To be squashed
Removed Contructor
Added block XYZ parameters
TODO, the second block overlay event’s XYZ might not be correct
When a chunk fails to load async, we fallback to the original sync method.
In this case, it was calling the async method twice which ended up causing
a stackoverflow.
MinecraftForge/FML@7219061b05 Also patch in warnings for Vec3Pool - similarly removed.
MinecraftForge/FML@dff2204558 FML now sets a security manager (FINALLY!). It's primary purpose at this point is to catch rogue calls to System.exit so that they can cause a proper crash report, rather than silently abandoning the game.
When a player triggers a chunk load via walking around or teleporting
there is no need to stop everything and get this chunk on the main thread.
The client is used to having to wait some time for this chunk and the
server doesn't immediately do anything with it except send it to the
player. At the same time chunk loading is the last major source of file IO
that still runs on the main thread.
These two facts make it possible to offload chunks loaded for this reason
to another thread. However, not all parts of chunk loading can happen off
the main thread. For this we use the new AsynchronousExecutor system to
split chunk loading in to three pieces. The first is loading data from
disk, decompressing it, and parsing it in to an NBT structure. The second
piece is creating entities and tile entities in the chunk and adding them
to the world, this is still done on the main thread. The third piece is
informing everyone who requested a chunk load that the load is finished.
For this we register callbacks and then run them on the main thread once
the previous two stages are finished.
There are still cases where a chunk is needed immediately and these will
still trigger chunk loading entirely on the main thread. The most obvious
case is plugins using the API to request a chunk load. We also must load
the chunk immediately when something in the world tries to access it. In
these cases we ignore any possibly pending or in progress chunk loading
that is happening asynchronously as we will have the chunk loaded by the
time they are finished.
The hope is that overall this system will result in less CPU time and
pauses due to blocking file IO on the main thread thus giving more
consistent performance. Testing so far has shown that this also speeds up
chunk loading client side although some of this is likely to be because
we are sending less chunks at once for the client to process.
Thanks for ammaraskar for help with the implementation of this feature.
This commit is based off the following :
Bukkit/CraftBukkit@b8fc6ab2c1Bukkit/CraftBukkit@85f5776df2Bukkit/CraftBukkit@0714971ca2Bukkit/CraftBukkit@7f49722f45Bukkit/CraftBukkit@53ad0cf1ab
You can see it's not working by requesting the ore IDs from lapis, and you'll see the name "dye" is missing (and that's the one registered using the wildcard).
Fixed it by inverting the order of the item stack parameters.
MinecraftForge/FML@c828bb63c5 Make AccessTransformer change INVOKESPECIAL to INVOKEVIRTUAL when making methods visible
MinecraftForge/FML@a9aa468457 Merge pull request #431 from diesieben07/at-invokevirtual
MinecraftForge/FML@31d726abad Fix the null networkHandler in the MessageContext
MinecraftForge/FML@725d988e36 Add in the objectholder, autopopulated by FML based on simple rules. Allows for reference driven substitution of mod blocks and items based on their server running state.
MinecraftForge/FML@f07bf5cb30 Fixed deobfusication of nested inner classes. And removed legacy ModLoader remaps.
Added amount that is being filled/drained to the FluidEvent
Added constructors without amount to ensure backwards compability
Added deprecation to amountless constructors
Fixes issue with biome decoration crashing on worlds with exposed void
Fixes same issue in JungleBiome decoration
Fixes forge bug in getting lighting from a block in chunk
MinecraftForge/FML@5275cea844 Try and see if there is anything to the identityHashCode collision hypothesis. If you see this in your error messages, kindly let us know!
Between 1.6 and 1.7 the return value to BlockRailBase.isFlexibleRail()
was inverted. While this is not a huge deal and could be worked around
by simply inverting your return value, it does mean its no longer
consistent with the function name and javadocs.
If recipe is multiple levels of inheritance from Object and not categorized, cls=cls.getSuperclass(); needs to be repeated more than once. It must therefore be moved to inside the while loop.
Simple file (which github will show for those making PRs) containing guidelines for making PRs.
Feel free to comment if you want/need anything added. I can pull the same thing to FML too if you'd like, Lex.
MinecraftForge/FML@e8b60441cc Reload game settings after mod loading is finished to capture mod keybindings. Closes#378MinecraftForge/FML@399770e572 Kill the modEventTypes list, register anything that extends FMLEvent, Fixes MissingMappingEvent handler, and any futureevents added.
MinecraftForge/FML@b7ad532ab5 Re-enable post initalize texture pack reloading to allow Icons to be registerd through any init phase.
MinecraftForge/FML@359ac3ca2a Ensure we check both item and block registries when finding valid IDs. Should fix#365MinecraftForge/FML@cee0f0b811 Tweak so that writing to the context will automatically send a message back to the originator in handshakeestablished.
MinecraftForge/FML@ab199c5811 Try harder to find a mod container.
MinecraftForge/FML@8633d780c9 And make a loud message if there isn't a modcontainer found, substitute Minecraft. In general, this can only happen for coremods not properly registering their code. Closes#363
Models must now be loaded from resource packs using the standard resource pack reference. For example, to load a model named "assets/mymod/models/mymodel.obj", you would call AdvancedModelLoader.loadModel("mymod:models/mymodel.obj");
Closes#670
MinecraftForge/FML@5d069629cf Allow itemstacks for furnace recipe inputs. Allow passing extra arguments through registerblock into the itemblock constructor.
MinecraftForge/FML@156a9ae03a Fix build script
MinecraftForge/FML@7d3b1250e8 Fix handshaking properly. Also, fix ID syncup. It now will completely freeze the idmap after preinit. This frozen map is used to inject "new" stuff into existing serverside worlds. Interesting sideeffect: remote servers lacking things will change the client, to also LACK ids for those things. watch for -1 ids in your remap events. Note: idmaps should be considered temporary per server instance. SERVERSTOPPED will restore "startup" state, as will client logout.
Block placement/interaction
Tesselator crash due to wrong mapping
Missing isreplaceable check in world.canPlaceAt
Small foratting/logging cleanup
Temporarly commented out efficancy changes till I implement it.
MapGenStronghold dynamic biome changes.
Changed InitNoiseGensEvent to pass a NoiseGenerator array instead of
NoiseGeneratorOctaves due to new NoiseGeneratorPerlin in
ChunkProviderGenerate.
Fixed worldgen crash caused by wrong metadata in Chunk patch.
MinecraftForge/FML@3d25b4e793 Add in the ability to strip interface references for specific interfaces - this is probably mostly useful for scala scenarios where sythetic methods are generated and is not a substitute for using Optional.Method where appropriate. Closes#300
MinecraftForge/FML@f4532410ec Change a couple of warnings, as a prelude to 1.7- preinit is now required for all GameRegistry activity, and every item and block REQUIRES registration.
MinecraftForge/FML@81fe1c9682 Add in an API marker for API type packages. This does several things: 1. Packages marked as API will generate a new "modid" (the provides) that can be depended on. 2. Packages marked as API will be searched systemwide, and anything declaring that package (even without the API marker) will get an implicit dependency on the API package. 3. The API package itself will get a soft dependency on the "owner" package.
Splits the BiomeGenBase constructor to create one which takes a flag
that indicates whether to insert the biome object into the biomeList
array. The standard constructor calls the new one with the default of
true. This allows biome wrapper-objects to exist.
MinecraftForge/FML@dac7f590ea Modify ordering of networkmod registration and mod instantiation. This fixes VersionCheckHandler logging an incorrect failure message due to NPE.
MinecraftForge/FML@f0dc530b28 Fix up documentation of VersionCheckHandler - it only ever accepted a String and only works on the NetworkMod annotated class
MinecraftForge/FML@243a21a353 Wrapping coremods as tweakers. Part 1.
MinecraftForge/FML@58a299aabc Attempt to inject coremods as tweakers, so both can share a dependency ordering
- Used to override the canInteractWith during player tick
- setResult to ALLOW/DENY as required
- Defaults to Vanilla behaviour in any other instance.
Required for LittleBlocks Mod and to Assist Gullivers Mod
This event is fired at the end of ItemStack.getTooltip(EntityPlayer, boolean), which in turn is called from it's respective GUIContainer. It allows an itemstack's tooltip to be changed depending on the player, itemstack or whether the advanced information on item tooltips is being shown, toggled by F3+H.
MinecraftForge/FML@e356f4d713 Cross-modsystem compatibility fix with thanks to Mumfrey @ liteloader
MinecraftForge/FML@9b55f1f48f Attempt at a shared modlist implementation - should allow visibility between liteloader and fml for "mod list display"
Fires for both silktouch and non-silktouch harvesting, and provides the player. Note, you may need to
change your break overrides to pass on the player for best results.
Added player eyeHeight field to allow changeable eye heights of players rather than being hardcoded per player class as well as add a getDefaultEyeHeight function.
You can use this for a clean way to override guis, without needing an
TickHandler to check if the gui you want to override is open and show
your own gui
Proper close check
there's a lot of entities. Basically, if the zombie can't reach the villager, backoff subsequent pathfinding attempts. Hopefully
should really help with lag caused by zombie swarms.
MinecraftForge/FML@913f6f6d36 Try and use the relaunch log, which should be classloaded..
MinecraftForge/FML@ac065ff5f7 Reset the IWorldGenerator seed for each mod, before calling. That should mean worldgen is consistent and not dependent on mod ordering, or mod sideeffects.
MinecraftForge/FML@dec9a3924d Add in "FMLCorePluginContainsMod" in the manifest. If this value is present, FML will attempt to parse your mod jar file as a normal mod file as well, instantiating mod containers there.
MinecraftForge/FML@9a5e24e338 Fix stupid derp is stupid. Closes#275 and means sp614x can do his thing
MinecraftForge/FML@ba90b61607 Make sure we only add args to the argument list if a tweaker hasn't already. Should fix LiteLoader compatibility issue.
Missing lava temperature. Feel free to change it to any value.
1300K is the typical max for Magma so wasn't sure what was desired. Regardless, better than the same temp as water at 295K 😄
MinecraftForge/FML@57befa89bb Fix keybindings being derped
MinecraftForge/FML@1d84e8063e Temporarily add a version of 'reobfuscate.py' that will resolve complex reobfuscation graph issues with specialsource. Copy it over 'reobfuscate.py' in the mcp runtime dir. Hopefully will have an MCP/specialsource fix in the coming days.
MinecraftForge/FML@0378355c37 The server.classpath generates the runtime manifest, so it needs the non-debug asm jars.
MinecraftForge/FML@a3f48734ff Fix up jar sanity check code. FML validation of the jar works now and doesn't derp classloading.
MinecraftForge/FML@9947ba8503 Fix logo handling. no more NPE if the logo can't be found. Also, fix location of mcp logo now.
MinecraftForge/FML@7348929819 Kill release time scala libraries, to be re-evaluated after all movement is done and shit is fixed. May require manual instalation for mods that use scala.
MinecraftForge/FML@6de36d78f5 Coremods now have a primitive dependency capability. Also, we search mods dir for special "TweakClass" manifests. These are using the vanilla tweak mechanism to inject into Minecraft. Helpful for other "platform" systems, when you don't want to have to deal with json changes!
MinecraftForge/FML@d4b30422b6 Update build and eclipse workspaces for debug asm.
MinecraftForge/FML@e44e8b3112 Force a global asset scan prior to mod construction : you should be able to reference assets anywhere in your mod now.
MinecraftForge/FML@20e93a412e Fix up logos in the mod screen. Clean up some unnecessary casts and suppressions, use the -debug asm library at dev time, since it contains full symbols and code in compiled form.
Updated FML:
MinecraftForge/FML@c47d08c89d Tweak debug data on patched classes
MinecraftForge/FML@dbf5fe38ce We now generate an adler32 checksum for each patched file and verify at load time that they match. Mismatch won't crash, but will emit a big warning..
MinecraftForge/FML@e88a0cd13f Update for stealth update. Thanks mojang!
MinecraftForge/FML@2336002f20 The game is going to exit in face of patch mismatch, unless you force it to run with fml.ignorePatchDiscrepancies in the system properties.
Makes ServerConfigurationManager correctly get player-specific spawn
point for the target dimension
Changes EntityPlayer to store and save a (bed) spawn point for every
dimension, as well as transfer them to respawn "clones"
End: f21cd286ca
Updated FML:
MinecraftForge/FML@f21cd286ca Resource packs, part two. FML mods are now resource packs. Vanilla will scan anything under 'assets' and turn it into a resource prefix. Use resourcelocations to look stuff up.
MinecraftForge/FML@1229c4c4ea Fix src distrabution, and got rid of pesky common folder in eclipse workspace. src is now installable.
MinecraftForge/FML@902772ed0c Revert common folder fix, Common folder does nothing, feel free to delete it after first load.
MinecraftForge/FML@8960f6869f Add windows lzma executable http://tukaani.org/xz/ He states that most things are under public domai
n, But I couldn't find an exact reference to this executable. I'm going to assume it under public domain and distribuiting it here is fine. If not someone pleas
e direct me to the apropriate license and I will act accordingly.
MinecraftForge/FML@70cfe24e67 Fix wrong project name in distro eclipse launch.
MinecraftForge/FML@7a004087f7 Add deobf data to src dist. Dont create deobf jar as we ship the lzma Added *.lzma to .gitignore
It is said that Resource Packs will return InputStreams. And I like putting my models into texture packs which, obviously, give InputStreams rather than URLs.
Updated FML:
MinecraftForge/FML@22738de028 Attempt to properly fix deadlock if the internal server derps. It should never hang now. Damn you fast computer..
MinecraftForge/FML@05a854cd2a Small tweaks to the mcp data. Nothing major..
Also cleaned up the names of said delegates, we do not have to follow MCP's crowdsourced names as they are very bad.
Redirected damage through setItemDamage to allow items to have finder control of breaking.
MinecraftForge/FML@24c4056651 Add in an optional modid identifier for @SidedProxy. It's main use is when both scala and java @Mods reside in the same package, and you want the @SidedProxy behaviour for a specific @Mod language type. In general it should not be needed otherwise.
MinecraftForge/FML@cd0466395a Fix sysout with trailing messages after a newline
MinecraftForge/FML@6f3da97365 Don't throw an exception if the scala adapter find a java proxy. I may add some distinguishers to @SidedProxy so you know which mod it's for.
MinecraftForge/FML@59fe905695 Don't continue trying to send events to mods that depend on errored mods.
In order to support multi-worlds such as MultiVerse, the server needs the
ability to register dimensions on client or many forge mods such as IC2
will not function correctly. This has been an issue for MCPC which
provides both Forge and Bukkit support to players. By adding the
DimensionRegisterPacket class, MCPC now has the ability to send the
required packet to client to register a dimension with DimensionManager.
MinecraftForge/FML@23b070c7d0 Alternative @SidedProxy setter for Scala.
MinecraftForge/FML@2cca7aa759 Some more Scala @SidedProxy adjustments. Now properly supporting pure singletons, i.e. object C { @SidedProxy(...) var proxy: P = null } Removed fallback, as all such singletons are properly handled by the new code now, and class implementations fall back to the code also used for plain Java mods.
MinecraftForge/FML@8517a824e5 Merge declaration and initialization of a variable.
MinecraftForge/FML@a3a920437f Merge pull request #230 from fnuecke/master
Make custom item renderers attempt to use EQUIPPED type when running first person. For backwards compatiblity, will be removed in 1.6.
And a small change to make the 1.6 check not print it's stack trace.
MinecraftForge/FML@99bb50d8f8 Improved Entity Spawn Error
MinecraftForge/FML@c0cca7f41d Merge pull request #227 from CovertJaguar/patch-1
MinecraftForge/FML@49111e9c5c Add version detection to astyle and print error if it doesnt detect version 2.0+
Also fixed astyle's config for max-instatement-indent that sometimes caused crashes with certian versions of astyle.
Updated FML:
MinecraftForge/FML@00c7883088 Very significant improvement in performance by using glSubImage to upload data. Inspired by frequent complaints about performance of hires texture packs. They probably still need a beefy system but should work. Hopefully I can figure out why the subImage GL side copy isn't working properly for an even more significant speed boost. But this gets things started.
MinecraftForge/FML@57ad221cc6 And add the patches *sigh*
An issue with biome adding mods which is becoming increasingly annoying for players, is that many mod authors that add biome specific world generation or mobs in their mods, for the most part, hard code them to work with vanilla biomes only. This becomes a huge problem when it's difficult to even find a vanilla biome, let alone a specific one, when biome mods are installed.
A simple solution to this problem is a tag system for biomes that allows mod authors to set up their world generators, or mobs to generate or spawn in biomes that have been registered with a specific tag such as "FOREST", or "FROZEN". I wrote such a system a few months ago, which I've been using with my own mods, and have made available to anyone who wants to use it. Since then, I've had requests from mod authors and players alike to try and get it, or at least similar functionality, into Forge, where other mod authors will be more comfortable using it.
Aside from the tags, it also includes a rule based system to classify biomes that have not already been registered with it when information is requested on them (You can opt out of this by registering a biome as type "NULL"). And additionally, the ability to register IWorldGenerators for specific biomes, or biome types (tags) to speed up chunk generation a little bit.
MinecraftForge/FML@2bc6a0666f Attempt to make any "default package" class public. This might fix problems with certain modloader mods that ship changes to vanilla classes.
AT changes and corresponding class changes.
Additions (all made public):
EntityLiving.targetTasks
PotionHelper.potionRequirements
PotionHelper.potionAmplifiers
PotionEffect.duration
Potion.setIconIndex
Item.setPotionEffect
Block.blockHardness
Block.blockResistance
Added an event on potion ingredient applied. Event contains the item
stacks of each of the potions being brewed as well as any remaining
ingredients.
Changed TileEntityBrewingStand and SlotBrewingStandPotion to look for
instanceof ItemPotion rather than potion.itemID
Adds IExtendedEntityProperties interface, which specifies three methods
that are needed: Init, Save, and Load.
Adds the EntityConstructing event, which is called during the
constructor of Entity. It is needed there so that the reference is in
place during the ReadNBT call.
Adds hooks into Entity that allow registration of
IExtendedEntityProperties classes, as well as saving and loading to NBT.
MinecraftForge/FML@4762d4d8ef Allocate more ram {typically 256 is defailt} to fermflower, should fix decomplication issues on OSX
MinecraftForge/FML@6370c242f0 OS X's python 2.6.1 has a bug in zipfile.extractall that makes it unzip directories as regular files. So switch to extract
MinecraftForge/FML@591e65fa1a Revert "Use the reobfuscation maps in the reflection helper for field lookups: should help some reflection cases with the deobf."
MinecraftForge/FML@2a779ec328 Try a different way of remapping the fields. Should work because it's userspace, not relauncher space
MinecraftForge/FML@ca2d8bd834 Fix reflection helper: it needs to unmap the classname to find the field maps.
549b6fd IMC tweaks: runtimeMessages now work (thanks for all that testing for this much requested feature!) and IMCEvent will no longer rem
9fafdc1 More logging tweaks. You can probably configure individual mod log files if you wish now
f169f7c A log of logging cleanup. FML will now read logging.properties to configure logging channels a couple of times during startup. You
3ac891f Try and handle "death on startup" a bit cleaner
2dc0189 Deprecate the old GUI ticktype. They're dead and have been for some time.
dd98784 Tweak a method signature
1c9a510 Add parameters to FML install to enable/disable certian aspects. Applying patches, running transformer/merger, and decompiling serv
1bd6847 Fix up packages.csv ordering for easier diffing
help mod developers- if you see this when testing your mod with, say, mystcraft, you're probably
keeping a hold of an invalid handle to the World (either directly, or indirectly via Entity or TileEntity)
and you should look to refactor to wrap those handles in WeakReferences
TESR view culling vs the TE collision bounding box (the former defaults to the latter)
Checked into a branch because it's likely to break expanded TileEntities.
Update FML: d075dafd075daf Merge branch 'master' into snapshot15 Fix up compilation and patching errors
1bd6847 Fix up packages.csv ordering for easier diffing
dd832f2 Update for MCP7.30c - fixes redstone rendering issues
aebf6eb Add in a registry method to allow for alternative TileEntity names- they will be used to support loading maps containing the older definiti
8921cfe Remember to add the new patches!
cd67596 The "ServerStarting" event should now properly crash the server if it fails, so the client will properly exit. Also, added in a "pre-server
e1c6630 Javadoc cleanup
5ce4e31 Fix breaking change
a99c488 Merge branch 'patch-1' of https://github.com/bspkrs/FML into gh-updates
94282c5 Merge branch 'FMLLogFormatter' of https://github.com/donington/FML into gh-updates
7ad8529 Update MCP to MCP7.26a and refresh MCP names
15534ed Update address of the FML repository to the new location in all the files
aa822e3 Fix logical error in comment text
a14ab91 Update license text to make clear that FML is not a way to sidestep MCP licensing.
0165742 Fix mcp conf md5 signatures for the snapshot
26a5b31 FMLLogFormatter: dynamic log level name
Update FML:8921cfe
8921cfe Remember to add the new patches!
cd67596 The "ServerStarting" event should now properly crash the server if it fails, so the client will properly exit. A
download parts of MCP, but this permission is not transitive to people distributing MinecraftForge
source independently of the MinecraftForge project.
Update MCP to 7.26a and FML: 7ad85297ad8529 Update MCP to MCP7.26a and refresh MCP names
15534ed Update address of the FML repository to the new location in all the files
a14ab91 Update license text to make clear that FML is not a way to sidestep MCP licensing.
New scripts for signing jars, and repackging source folders.
Fix LanguageRegistry loading files in UTF-8 format. loadLocalization should work for non-xml in all languages now (assumes UTF-8)
Fix incorrect end length calculation. Closes#161 Thanks BStramke!
Rollback a method name change that breaks a lot of mods
Update FML: fb701cdfb701cd Revert MCP name change for canConnectRedstone - it conflicts with a forge method of the same name and breaks 1
1a232cf Fix multiple GUI containers for ML containers. Sorry ultimatechest that this fix took so long, a bug report at
853f54b Log if there's a problem reading the class bytes
Without this change, it is possible (and, in fact, nearly guaranteed) for lists to rebuild endlessly if a parent list is marked as needing a rebuild but never actually read. This change forces the parent list(s) to rebuild as well, resulting in a significant performance increase and smoother framerate due to greatly reduced GC activity.
This will reduce the server load considerably by doing the chunk data compression in writePacketData, which will be run from the network thread.
The chunk compression can easily use 1/4th of the overall server thread CPU time if someone is exploring much, especially when moving quickly (e.g. with quantum leggings).
Player, this is how it's properly done.
that previously exists under a new name: canApplyAtEnchantingTable()
to determine enchantments that can apply at the enchanting table (a smaller
subset of all possible enchantments for an item, now). Also, add your
enchantments to the anvil book application list, if neccessary.
Fixed issue with users who don't have the JDK installed in there path
MCP will now output bfusicated files with windows reserved names to _name.class and FML will prioritize those names.
Fixed placement of onConnectionClosed callback
Update FML: d604e44d604e44 InterModComms now supports a runtime polling based model for inter-mod comms at runtime. Deprecate method that shouldn't be used. COPY it's content to your mod. Don't CALL it.
8b7778c Don't be as alarming about item overwrites.
Fixes startclient/startserver
Added configuration file which allows modids to ignore ID validation checking. IT WILL CRASH YOUR GAME in 99.999% of cases.
Immibis is a whingy ass. And TinyTimRob too. Now STFU and GTFO. closes fml/#510 for ever.
293edb3 Some tweaks to item identification. The GameRegistry methods are deprecated to encourage you to use the new named ones instead. These will force a name on the item/block, allowing for stronger matching t
9266ff3 Updated MCP download mirriors upon Searge's request.
31695d5 Fix var name messup
bfb3020 Update released eclipse project to link BouncyCastle
22a88ea Change ID management slightly. IDs are tracked by block type for itemblock items now. This means servers will need to update. Also, ordinal rearrangements within a mod will no longer trigger server disco
Minecraft is now decompiled into sane package names.
Got rid of the src/common folder as the only folder that exists is src/mincraft, because the client and server codebase is merged.
ID Map generation/validation fixes
2f34290e: Fix possible escape leakage..
83deece6: Change ID management slightly. IDs are tracked by block type for ItemBlock items now. This means servers will need to update.
Also, ordinal rearrangements within a mod will no longer trigger server disconnection, though a warning will still be logged.
02b54ca8: Add a modid on the mods list, should make it easier to do things like forge chunkloading config
70670f2f: Fix build eclipse extractor task
b9fa3fc9: Add in storage, detection and validation of the ItemID array between client and server
5e5d8206: Fixing id map generation - should validate correctly now
f9fc06a8: Remade python dist as 32-bit.
93d47a1c: Reenabled replacement of the eclipse folder.
Update FML: 26a2ef526a2ef5 Add a modid on the mods list, should make it easier to do things like fo
b4e3490 Fix build eclipse extractor task
828341f Fix typo
7a8dae5 Try and make branch non-derpy
d3c0e1f Try defaulting branch differently
9c77d3f Remove old eclipse workspace and ship/extract as a zip file (use ant set
6371e9b Assume Forge is the parent directory when checking for AT configs.
516954e Name both zips the same format
1151d5c Last part of branch name only please
25f1dda Try and get a valid branch name on jenkins
39a146f Clean up build.xml script- support outputting a branched jar file
037dcae Small derp in install.py
01d6da3 Try marking python as binary.
8b26659 FML will now attempt to download MCP as part of the install process Now
42b3e6a Windows Python distrabution created using py2exe, thanks Fesh0r for the
e709ab8 Marked more spots in gui/items bitmask as being free.
Add in a call to determine if there are possible chunktickets for a world. This should let
Mystcraft and other dynamic world generating mods check if they should immediately load
a world based on existing chunk tickets.
Added new getTerrainBlock whihc will limit the resuling ID to < 256, useful for world gen.
Calls to getBlock with IDs less then 256 will be assigned values above 256 {Thus freeing up terrain gen slots}
Made ConfigCategory implement Map<String, Propertery> should fix compatibility with most mods that broke two builds ago.
Allow getting the oreID from a ItemStack, as an alternative from getOreID(String).
Now is easier to exchange items for their equivalencies through the OreDictionary.
Returning false to addEntityID prevents the entity from being saved (cred to LexManos)
Entities which do not save to disk but are chunkloaders causes errors the next time the world loads. This ought to fix it.
Adds a chunk constructor with full block id range, that's metadata
sensitive, has intelligent coord ordering, and which allows for
generation at greater heights than 127.
Update FML: 1f5c58b1f5c58b Fix up MCP version
61e4db2 Merge joined.exc add update howto
5efc1eb Revert "Fix MC-2497 - derpy torch flames. Moved from forge. Everyone sho
3b3600d Modified merger to just consider all server classes as common. And moved
edcc5ca Forgot mcp.cfg
ca79dfe Updated to 1.4.5b
5945279 Fix python error
57bf643 Modified decompile so that we do not have to decompile the server, saves
d9d0a46 Cleaned up some tabs
2fac644 Change usage of ZipFile, fixes issues with Mac's default instation of py
f348496 Fix mod display list. Shouldn't be derpy anymore.
a5c31b5 Fix World patch- workaround no longer required and leftovers are bad.
2dc3f0d Cleaned up the AT config updater, should work for any setup of the MCP w
Update FML: fa56701fa56701 Fix MC-2497 - derpy torch flames. Moved from forge. Everyone should benefit.
96935bb Fix an NPE in TileEntity trying to generate a crash report. Make suspicious classes just return the obvious. Fix NPE for FML crash report on server. Clean up dead pa
Update FML: 43d304243d3042 Clean up a patch
fec221f Update FML for MC 1.4.5
b0f0635 Fix for ModLoader static overrides not displaying.
23a2513 Fix up derpy file name handling: closes#127 Fix up duping childmods: cl
a6eaa2b Fix spelling issue.
c6a0741 FML setup should now download and verify all the minecraft files needed
5a1930e Small fix to some MCP metadata for pre2
418deba Update to MC 1.4.4
4ff2cff Fix bug when a modloader mod is run on a dedicated server and has a conn
Added default Lava and Water registrations to Liquid Manager.
Removed method which relied on flawed assumption that a given liquid only had a single type of container.
Signed-off-by: King Lemming <[email protected]>
8356fe9 FUUUUUU! Stupid ticking. STOP REGISTERING TICK HANDLERS IN YOUR CONSTRUC
6edce8b Patch a file handle leak in RegionFileCache handling when under memory p
ca2bbe0 Update MCP mapings again, yay bad syncs.
c8941a7 Updated MCP mapings.
5e20c03 StartServer is now useable in merged code base.
b19e882 Remove some debug, closes#1239d7d32a Fix up tick management outside of mod loading phases for ModLoader mods.
d512539 Negatively cache failed class lookups, should help with @SideOnly performance issues.
mods doing something derpy. Hopefully, your world saves will thank me.
Note that if the mod does derp, it's data is lost. It's not FML or Minecraft Forge's
responsibility if "DirtChest 2000 Mk5" can't write their TileEntity method correctly
and you lose your 100000 diamonds.
Update FML: a3a93f3a3a93f3 Fix some whitespace issues, handle possibly bugged entities as well
a7eb5dc Vanilla/mod bug fixes: CME on entity processing, TileEntity resetting chunk on save/load.
b23081d Support for ModLoader 1.4.2. Good job Risu!
66db4ec Add in an exclusion list tag for @Mod. The backend code isn't yet implemented, but shows the basic idea.
8006b77 Fix instantiation bug
7cc91cf Simple InterMod comms. Send a message using FMLInterModComms.sendMessage(). Receive messages through an @IMCCallback
24d7285 Update for MC 1.4.2
cedf3d5 Duplicate Mod display screen.
Update FML: d915f39d915f39 Fix typo in access transformer
346691c Fix the merge for forge
6dadc1d Fix up references to minecraftDir in obf code
8a55f68 Update FML for Minecraft 1.4.1
5645fa5 First update to 1.4.1, patches need updating.
ff0f00f Add some null checks, and throw descriptive exception when SideTransformer prevents a class from loading.
62a6b52 Fix RenderRegistry render ID - now at 36 Fix SpriteMaps - they're running out fast! Switch to forge if you can! RenderBiped now has an armo
b845cde Fix up FML python script for forge
2c36dfb Update to MCP pre 3. Fixes some weirdnesses with explosions.
acd880d Merge branch '1.4'
e6f57e5 Update for MCP release
b1de0fc Remove fuzz from patches for INetworkManager change
ad44619 Fix for new names INetworkManager and ITexturePack. I also provide refactoring scripts for both, for your use...
3a94211 Add a script to ignore git complaining about the eclipse workspace changing - run when you first open the eclipse workspace
9386e23 Update gitignore - ignore the files that will change or be deleted
10b318c Add in "starter" image for eclipse workspace
995d5b7 Eclipse workspace fixup 2?
bbb12c8 Clean up eclipse workspace- part 1
b50058e Clean up a bit of patch fuzz
4a0bfa9 Fix CommonHandler for rename of the server thread class
4d1ec66 Update with RC2 MCP. Use the joined.exc file directly since MCP now provides it.
b52e3d0 Fix exception for CodecMus
a1011c9 Fix some compilation issues. Requires resolving the worldclient abstract method
0ebd4f3 Inital patch update to 1.4
89c68c4 Moved into EntityVillager
e4702cb Fix line ending detection during checkout.
6e64fd7 We don't need logging here...
014b3f4 remove useless -Server projects
7628c67 Updated the AT config and Marker config for 1.4 obf
54a322c Updae build to copy files that may decompile differently but are actually the same, and updated for 1.4 values.
aadf396 Update MCP Merge config.
81e1855 Pull in MCP's 1.4 conf files.
5686fd4 Fix error in merging of exec's
Update FML: 989ab3e989ab3e Update build.xml - add a classpath to the manifest. This means the universal jar is now a server side launche
88f1dc9 Typos!
470a185 Try and avoid an NPE in crash reports
0029518 Fix logging problems- log death messages and re-route the server through FML logs properly.
fe7a832 Fix the test mod
a2bc30b Coremods can be specified via the command line: fml.coreMod.load=<listofcommaseparatedclasses> This will help with developing coremods
bae1f74 Fix classpath for server
887aa27 Add in the ability for a client to throw a custom exception that displays a custom gui instead of the default error message.
e17f267 Update FML internal classpath. Helpful for coremod devs
3b9972a Don't use File to separate the last element of the path. It's a URL, they're always separated by '/'
5c96afe Changed RelauchLibraryManager so that files with different paths on the same baseURL can be implemented in one ILibrarySet.
1bca393 FML as a whole is now subject to transformers.
27cf731 Bonus extra character. thanks randomitter!
94c84cd Merge pull request #116 from Vazkii/patch-1
c2d3195 Add Null check to FMLClientHandler.sendPacket
Update FML: d0e7c9ed0e7c9e Update patches *sigh*
f3e1cac Add in a savehandler strategy for reading and writing data to the world save. This service is only available to coremods via the WorldAccessConta
51fb513 Add in some bukkit supporting code. Most of this is unimplemented until the bukkit coremod is complete.
65c9fdd New stuff on the ModLoader! Risu has been busy. Closes#114c1d4458 Mods can now declare a range of minecraft versions they will run against
Fixes an issue where the server can move a player while the player is
moving, process the player's last move (putting the player back where
they were before the teleport), and then complain about the player
moving too fast when the client catches up to it's new position. Also
fixes this issue while riding an entity. Only affects player
client/server movement sync.
Fixes setting and timing of map storage object to allow for the
WorldProvider to use it during initialization
Forces single instance of map storage object (per side)
Moves setting of spawn to after provider setup
Adds world unloaded message to MinecraftServer on save.
Adds world unloading calls to chunk provider/manager when all chunks are
unloaded.
Adds call in MinecraftServer getWorld to hotload world if it isn't
loaded.
Adds handling for unloading and hotloading of worlds, fixes some typos,
allows for dimensions to be unregistered (allowing save specific
dimension registrations), general changes to match these features.
ca1ca4f Fix maps supporting greater than byte() dimension sizing
15ee8bf Fix language registry additions, closes#113a08b5b1 Merge pull request #112 from pahimar/master
8dac58f Added ability to query the Language Registry by key and language for specific localized text, as well as loading in localization text f
chunkloading config directly in the config file, including chunk
loading overrides if they wish (and the config allows them).
Also added "player" tied tickets that bind to the player and not the
mod's quota.
dd7502a Fix parent child counts showing properly. Closes#107 thanks scott!
b36d447 It's useMetadata, not usesMetadata. thanks myrathi and psx. closes#110efb1066 Fix random shuffling when manipulating biomes by using a LinkedHashSet to preserve iteration order. Closes#111
Added function to get a free Item id. Will only accept values that are not in the block space. Needs testing.
Marked all the old getOrCreate* functions as deprecated.
Null modData is allowed now.
The entity id is actually properly persisted in the ticket now.
There is a new "orderedLoadingCallback" that allows you to provide a preferred ticket loading order in case of "excess tickets". Also, tickets
that are not in the returned list are now unregistered.
There is a way to resort the chunks in the forced chunklist on a ticket now.
Log the dormant cache configuration
dd39ae5 Try and fix the newline capture so consoles show on the server on windows again
b39f808 Readd ancient searge name so dan200 and computercraft can run again. REMOVE THAT CODE DAN.
a2c059e Fix missing import. Thanks ichun :(
19316a0 Version file searching should work for directories too
fbc7a5c Fix bug causing NPE if non-whitelisted player joins an FML server without FML installed
e9cfd10 Merge pull request #103 from iChun/patch-2
1424883 Fixed ModTextureAnimation not updating and not binding to correct image.
6c746ec Tidy code
aacbfeb Change version.properties search slightly, allow access to found file from the preinit event
1513b36 Add in the capability to read an internal version as <modid>.version from a file in the zip call versi
35852a6 Fix up reversed assignment for version fallback
e88ddc5 - Make the exception print for headless servers if the Downloader cant initalize.
f24ff07 - Remove a bunch of warning about javadoc, not a real fix, but no more warning.
3420ea7 - Update MCP Mapings
87104f0 - Makes GetModSrc check the common folder when attempting to extract source files
640446b - Tie parent/child containers together again. Should close#962cf4917 - Village mating produces added villagers, and the egg should place added villagers too. Closes#97.
6394ee8 - Clean up stale references to the Player stored in the NetworkRegistry, closes#1007299e05 - Merge pull request #99 from CovertJaguar/patch-1
c4bd040 - More readable init logs
70f55c5 Add in exclusion list for IFMLLoadingPlugin.
1c1716d Remove debug cruft
d567f79 To properly align with packet9respawn, make packet1login's dimension an int as well
ecd4e46 Attempt to build some protocol negotiation, and fix packet1login so that the dimension is a short, matching packet9respawn
16fe495 Compatibility level is now passed from server to client - and the client tracks it. This means certain packet changes can be made without b
4f70d23 Fix dependency checking: you can depend on specific versions of FML
e6abb69 Fix up tiny packet handler to actually work
e862052 Allow javax to be shipped by mods. Should allow some more modloader mods to work unaltered
4071ad1 Add in a little bit of protocol cleanup. Start work on allowing multiple protocol versions
6061964 Give a way to build the packet131mapdata packet correctly populated
b818769 Capture and leverage Packet131MapData
12bc4ba Make console logging pass through a single logging thread to avoid concurrency problems with launchers and stuff
8fccfa2 Overlooked chat message support *sigh*. Fixes wierd mods that communicate through custom chat messages rather than
a697d04 Rescan mod packages where there was a possible mod identified to try and make sure we load it. Fixes Matmos r16
9d812f1 And handle the other way to globally register an entity
869cf78 Fix up mods trying to register entities outside of modloading. Now you'll get a big fat warning for doing such a de
186680c Fix CJB mod compatibilty for real. Gui container registration can now happen in the constructor. YUK!
5aed6d9 Fix compatibility with ModLoader dispenser hook. Fixes a bug with IDispenseHandler too - though it means that inter
3d7a665 Fix headless operation, hopefully
10a7169 Fix up trying to re-add stuff to the classpath when it's already there
0eb7180 Fix out of range entity id handling for ModLoader mods a bit more. Thanks Herobrine mod!
b1b4c61 Expose GuiMerchantButton
359cfb5 Log a big fat warning for the developer in the case the network version is not acceptable to the mod itself. (This can happen because of a bad range specifier for example)
c90a853 Fix up addRenderer to catch exceptions from the basemod, also, addrenderer now supplies a list of the default renderers from MC for editing and will note the
18069d8 Change download location for FML libraries to files.minecraftforge.net, add an encoding param to the javac command line to force utf 8
a40f4a7 Add in random jar/zip files to the classpath. UGH this is so fucking ugly it's not funny.
5b6460b Use a null socket and try to prefer the result of getLocalHost in the broadcast data.
c0d1348 Add in an ItemRenderer null check so FML can run render adding mods
482c163 Inverted boolean logic. Grrr.
221d113 ModLoader mob spawns use packet 24- build a bypass system so that they can still use it
f19f426 Remove debug statements
Server mods can now use noClip to push players through solid blocks without is being an invalid move and resetting the players position. Useful for creating semi-solid blocks like quicksand.
b17dd3c Some tests
fa66ffa Fix trying to load the client side packet handler, when on the server, hopefully?
b106420 Fix up network negotiation - now it will disconnect with a nice error screen if there are missing mods on the client vs se
c971adb Fix missing addCommand call: thanks "spawnwolf test command"
d6326de Fix a couple of modloader mods. Thanks!
483667c Some functionality fixes for @Instance injection.
8bef512 Versions now have two flavours: the @Mod(version) which is the "programmatic version" and is used for all version relationship calculatio
501009c Always for ML mods into "public" class accessibility - we don't call from the default package like ML does.
d3d4308 Add in a convenience method for getting a class instance based on existence of another Mod. Useful for soft dependencies.
Update patches/common/net/minecraft/src/NetServerHandler.java.patch
Server mods can now use noClip to push players through solid blocks without is being an invalid move and resetting the players position.
Useful for creating semi-solid blocks like quicksand.
180a279 Merge pull request #82 from Chicken-Bones/master
cf38461 The access transformer will now handle classes in packages.
2c85539 Reverse the meaning of state in fml.modStates system property and fmlModState.properties - it was very derpy before. Now: true is enabled, false is disabled, as you would expect
d651189 Actually fix the corrupt JSON problem
f6a8cd5 Fix isModLoaded for "disabled" mods, and the toposort as well
3bde961 A bit more information for dependency handling
6396bea Fix up handing corrupt mcmod.info
6bc6def Fix a problem with network ids
7328610 Fix up version handling properly. Hopefully, and the error screen.
9fcc452 Only active mods should have dependencies checked, and be sorted
26302a6 Fix oddity with Screen, print a version out in the sorted list!
93b8ba9 Fix missing serverSendPacket
23fdbbd Trading support for ModLoader - thanks Herblore!
d7a74d8 Close the jar, for cleanliness sake
58e6dd9 Fix authors - it'll read both "authors" and "authorList" from the json now
907cf2d More ML compatibility - fix up dragon mounts, thanks!
ee48a36 Fix up loading mods that are grandchildren of BaseMod
c6f362b Fix entity handling for ModLoader mods, thanks parachute mod!
6e01c59 Merge ChickenBones pull into FML - adds player trackers
a0cbd37 More precise error handling when an invalid class is present
12323e2 Fix textures not applying properly
789a4a3 Fix up entity spawning - hopefully they won't warp anymore.
a87d045 Add in a helper on the server start event for adding commands to the server.
82e9309 Move villager trading hook up a bit. thanks sengir.
8deaa37 Fix LAN to try hard to find a real network interface, not just localhost most of the time
b5363e3 Update build to not bother building client jar. Universal is everything now.
28a10ac Null protection for ticks() -- probably should uses EnumSet.noneOf() but you can also use null now to stop ticking. closes#77c349d51 Automatic mod entity registration into the global entity list. This might break entity code out there, sorry, but this way for most entities you no longer need to manage the global mod entity stuff at all. just remove it. FML will take care of the rest (note, worlds won't load the old entities)
ef01745 Add in a utility function that *might* tell you the context you're running in on either client or server: FMLCommonHandler.getEffectiveSide
c97d6a6 Try and stop sendPacketToAllAround from being crashy
2062273 Mods can add mod specific crash information to the crash report now Forge needs to implement MinecraftForge.getCrashCallable
6e6436e Fix up dispenser handling, add in new params for the dispenser: breaks IDispenseHandler, sorry
38f4a22 Fix up MLProp handling for null info
3a8b047 GUIs working in FML for ML mods
52483ee Support gui opening for Shelf mod
dce1cbc Updated MCPMerger to annotate unique classes with there sides, and SideTransformer to null out any class that is loaded on the wrong side.
Client side only classes are properly annotated, and denied loading on server side
Added missing client side only ModLoader.getContainerGUI function
Guis work for FML mods now.
Fixed MLProp handeling of null info
Fix up dispenser handling, add in new params for the dispenser: breaks IDispenseHandler, sorry
Since the amount of speed lost is 1 - co-eff, rounding 0.997 to 0.99
makes a big difference to the distance a minecart will travel (less
than half of the distance in vanilla 1.25).
46c563a Expose more of the village construction parts for building village piece
1380c2e Allow access to the type "ComponentVillage"
71a3818 Documentation and registration for villager stuff
e3a343c Fix javadoc derp
195b1a0 Villager trading, manipulation and village enhancement. Still WIP but sh
69e66c3 Fix exception based logging to actually log the exception!
Update FML (reorg some AT for FML vs forge):
2171c0c Update fml_at with new transforms
924a6f9 Fix derp where client sided packet handler would be created on a dedi server env
ad4cffb Add in support for "dummy" keybindings- ones that are added to the list but never do anything so the mod can handle it all themselves.
cf77ffb Don't complain about minecraft source code being in "net.minecraft.src". Derp.
b2fdcd7 Fix ModLoader add XP Smelting
094ce2a Actually register client/server packetspecs as their correct sides! fixes#71
e8cb2c1 Error if channel name is invalid - either too short, or too long
9c6c56c Add a connect and read timeout for downloading libraries. This should really stop the "waiting forever" at startup screen.
0d5affe GIANT FAT WARNINGS if you use any code in net.minecraft.src or any subpackage thereof. Get it out of there, now!
13f210f Fix up ML GUI ticking. Thanks sharose!
c61ad51 Organize ALL the imports
c0842b0 Expose the server in serverstart event
2851079 Fix up directory injection of log file locations
5197524 Refer to FMLLog, not FMLRelaunchLog
78efd1a Tidy up server launch - reflection not required anymore
eee0a99 Also, log what the directory discoverer finds for mcmod.info
10c96c3 And log the exception if it has a problem reading the jar file
07cc3fb Fix jar loader failing to inject any metadata at all if mcmod.info is not found.
e31f143 Change install.cmd to install.bat, why, cuz people are .... Updated readme to mention needing server and client.
recompiles against standard ML interfaces.
This updates to official MCP 7.2, so you'll need to rebuild your workspace (some
small but important patches to MCP went in)
Made patches error and not apply if the target file is not found.
Updated Event Transformer to add a default constructor...
Fixed 4096 setup code in MinecraftForge.initalize()
Added blank Access Transformer config for Forge
Implemented version storage
Added basic dummy FML mod container to remove the need for mod metadata file
Added beggining work on Forge event system
Updated and moved EnumHelper
This fixes the issue that, up to 400 ticks from getting in range,
entities have a wrong offset (because server and client don't agree on
the position to calculate relative updates from)
Fix world provider behaviour: WorldProvider.byDimension should always return a new instance- otherwise you can end up with worlds overwriting one another
(World, double, double double) constructor is nolonger called, normal (World) constructor, and setPositionAndRotation is called afterwords.
yaw, pitch, and yawHead is sent (if the entity isn't a EntityLiving yawHead isn't used)
The datawatcher data is also sent like a normal Entity.
Removed the MLProp special case, no longer needed as MLProp decompiles fine.
Updated patches to work on all systems.
Added warning and exit if the user does not say yes to the cleanup.
Mods must register there dimensions on load, by calling DimensionManager.registerDimension(uniqueID, WorldProvier, boolean)
Mods are resposible for writing there own transporter blocks.
Initial commit, needs some more testing and design thoughts.
NetworkMods will be assigned unique ModIDs by the server, and those IDs will be sent to the client upon connection.
Refactored Forge packets to the net.minecraft.src.forge.packets package. And introduced the base ForgePacket class.
Added initial ModList request/response.
Mod creators should call MinecraftForge.registerEntity to register a entity.
All entity ID numbers are Mod Unique. Meaning two mods can have Entity #1.
Added client and server side packet handlers for the 'Forge' channel. For use in internal packets such as the new Spawn packet.
Updated the build scripts to copy over unique server source files now that there actually are some.
For modders:
If you have a entity that used MLMP's 'owner' system, you should have your entity implement IThrowableEntity
If you have a entity that implments MLMLP's ISpawnable, you should implement ISpawnHandler.
They provide the same functionality, just in a cleaner, more orginized way and will be the method used when we eventually drop MLMP.
Fixed line endings in install.sh
Added mod_MinecraftForge for simpler logging of minecraft version in crash reports
Added new hooks for connection events, See IConnectionHandler for more details.
Added Packet250CustomPayload handeling and channel registraction management, see MessageManager and IPacketHandler for more details.
Forge now uses unsed fields in C->S Packet1Login to identify itself. None Forge clients will get a graceful disconnect message instead of the 'Unknown packet 230'
On windows they no longer need the user to press enter every step
Moved version info out to version.txt, This will only effect the svn. If you update the version do it in version.txt not in ForgeHooks.java.
Introduced the build number into the version string.
Cleaned up some extra echos in scripts.
Server RailLogic.getNAdjacentTracks public
Server TileEntityFurnace.getItemBurnTime static
New GUIControls change, Made it into a scroll panel instead of a static position window.
This just makes things look better when multiple mods with KeyBindings are installed
This is to allow modders the ability to extend blocks other then BlockContainer, and still be able to have a TileEntity.
Also added a NBTTagCompound to the base EntityClass, this allows any entity to be given arbitrary data that will persist across world saves.
This data is NOT sent over the wire in a MP situation, to have data sent over the wire automatically use the built in data watcher.
Added @Deprecated annotations to the 'backwards compatible' functions spacetoad re-added.
Made changes to the install scripts:
-Will overwrite the current MCP mappings and use the ones that ship with forge, this
should eliminate all the issues of people not being able to install it because they updated there mcp.cfg
-Will now move fernflower.jar if it is found, so that MCP will not decompile using it.
Should fix the issues of people trying to use forge with fernflower installed.
-Will call updatemcp/updatenames so that users get the latest mappings for unmapped items.
-Also calls updatemd5s so that the forge API is skipped when spitting out reobfusicated files.
Update the readme to be more accurate.
Added my name to the credits :P
Updated the update_patches/package scripts to account for grabbing the conf folder.
Added GnuWin32's grep
Major refactoring of the patches, now each modified file gets its own patch file.
Rewrote all the scripts to use new multi-patch system.
Added linux install.sh using new system.
Added some required libraries from GNUWin32 for the windows side of the new setup.bat/update_patches.bat http://gnuwin32.sourceforge.net/
- Added ISidedInventory
- Added IBonemealHandler
- Added hooks in grow-on-grass and in break tall grass.
- Fixed furnace output of multiple items.
- Added getBlockDropped().
- Bumped version number to 1.1.1.
1) Keep patches to Minecraft classes minimal. If you need a lot of things done, you may either add to relevant forge classes or make a new class.
2) An example mod must be provided for all PRs adding events/hooks to Forge. Whether it's a full mod using your proposed hooks, or just a pastebin containing a simple example, an example mod is required. Please also explain in detail what your new hook does.
3) Follow Forge coding guidelines (braces on newlines, spaces instead of tabs, etc)
For more information, refer to [the wiki](https://github.com/MinecraftForge/MinecraftForge/wiki/If-you-want-to-contribute-to-Forge)
Submitted the sleep handler code for his mod (Somnia) and others to use.
* Scokeev9 *
Gave permission for ScotTools API to be integrated into MCF, and also supported the Forge by converting his mods to use it.
ScotTools Background: ScotTools was an API that enabled modders to add blocks to harvesting levels (and many other ease-of-use features to create new tools), and the first tool API that used block material for block breaking efficiency which allowed blocks from mods that didn't use ScotTools API to break with the correct speed.
* SpaceToad *
* LexManos *
* cpw *
* Minecraft Coder Pack (MCP) *
Forge Mod Loader and Minecraft Forge have permission to distribute and automatically download components of MCP and distribute MCP data files.
This permission is not transitive and others wishing to redistribute the Minecraft Forge source independently should seek permission of MCP or
remove the MCP data files and request their users to download MCP separately.
IBXM is copyright (c) 2007, Martin Cameron, and is licensed under the BSD License.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of mumart nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
You are free to use this class for any purpose, commercial or otherwise.
You may modify this class or source code, and distribute it any way you
like, provided the following conditions are met:
1) You may not falsely claim to be the author of this class or any
unmodified portion of it.
2) You may not copyright this class or a modified version of it and then
sue me for copyright infringement.
3) If you modify the source code, you must clearly document the changes
made before redistributing the modified source code, so other users know
it is not the original code.
4) You are not required to give me credit for this class in any derived
work, but if you do, you must also mention my website:
http://www.paulscode.com
5) I the author will not be responsible for any damages (physical,
financial, or otherwise) caused by the use if this class or any
portion of it.
6) I the author do not guarantee, warrant, or make any representations,
either expressed or implied, regarding the use of this class or any
portion of it.
Author: Paul Lamb
http://www.paulscode.com
This software is based on or using the IBXM library available from
http://www.geocities.com/sunet2000/
IBXM is copyright (c) 2007, Martin Cameron, and is licensed under the BSD License.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of mumart nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Download the latest installer from http://files.minecraftforge.net and follow instructions given by the installer.
For Mod Devs:
Download the latest Forge source distribution from http://files.minecraftforge.net and unzip it to a folder.
Open a command prompt, navigate to the directory where you unzipped the Forge sources, and run:
If you have Gradle: gradle setupDevWorkspace
If you DO NOT have Gradle installed:
Windows: ./gradlew.bat setupDevWorkspace
MacOS/Linux: ./gradlew setupDevWorkspace
If you wish to use the Eclipse IDE, run gradle eclipse instead of gradle setupDevWorkspace, or install the Gradle plugin for Eclipse and import the Forge source folder as a Gradle project.
To get the decompiled classes:
If you have Gradle: gradle setupDecompWorkspace
If you DO NOT have Gradle installed:
Windows: ./gradlew.bat setupDecompWorkspace
MacOS/Linux: ./gradlew setupDecompWorkspace
For Contributors: (Note: This assumes you have Gradle installed. If you don't, use ./gradlew(.bat) instead of gradle.
Clone this repository to a folder.
Open a command prompt and navigate to the folder where you cloned this repo.
Run gradle setupForge to setup your development environment.
To use Eclipse, point your Eclipse workspace at the eclipse folder inside the repo.
Requirements (for both mod devs and contributors):
You must have a JDK installed and accessible.
If you do not wish to use the gradle wrapper, you can install Gradle from http://www.gradle.org/ .
<inputmessage="This will clean the mcp environment at ${mcp.home} and backup any src-work folder there (src-base will be erased). Continue?"validargs="y,n"addproperty="do.continue"/>
<conditionproperty="do.not.continue">
<equalsarg1="n"arg2="${do.continue}"/>
</condition>
<failif="do.not.continue">You have decided not to continue. This script will stop now.</fail>
<echo>Preparing the MCP environment at ${mcp.home}</echo>
<antcalltarget="fmldecompile"/>
<echo>Moving old patched sources at ${patch.mcp.srcdir} out of the way</echo>
* The FML Forge Mod Loader suite. Copyright (C) 2012 cpw
*
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+"Forge Mod Loader has detected that this server has an ModLoaderMP installed alongside Forge Mod Loader.\n"
+"This will cause a serious problem with compatibility. To protect your worlds, this minecraft server will now shutdown.\n"
+"You should follow the installation instructions of either Minecraft Forge of Forge Mod Loader and NOT install ModLoaderMP \n"
+"into the minecraft_server.jar file "
+"before this server will be allowed to start up.\n\nFailure to do so will simply result in more startup failures.\n\n"
+"The authors of Minecraft Forge and Forge Mod Loader strongly suggest you talk to your mod's authors and get them to\nupdate their "
+"requirements. ModLoaderMP is not compatible with Minecraft Forge on the server and they will need to update their mod\n"
+"for Minecraft Forge and other server compatibility, unless they are Minecraft Forge mods, in which case they already\n"
+"don't need ModLoaderMP and the mod author simply has failed to update his requirements and should be informed appropriately.\n\n"
+"The authors of Forge Mod Loader would like to be compatible with ModLoaderMP but it is closed source and owned by SDK.\n"
+"SDK, the author of ModLoaderMP, has a standing invitation to submit compatibility patches \n"
+"to the open source community project that is Forge Mod Loader so that this incompatibility doesn't last. \n"
+"Users who wish to enjoy mods of both types are "
+"encouraged to request of SDK that he submit a\ncompatibility patch to the Forge Mod Loader project at \n"
+"http://github.com/cpw/FML.\nPosting on the minecraft forums at\nhttp://www.minecraftforum.net/topic/86765- (the MLMP thread)\n"
+"may encourage him in this effort. However, I ask that your requests be polite.\n"
+"Now, the server has to shutdown so you can reinstall your minecraft_server.jar\nproperly, until such time as we can work together.");
thrownewRuntimeException(
"This FML based server has detected an installation of ModLoaderMP alongside. This will cause serious compatibility issues, so the server will now shut down.");
* The FML Forge Mod Loader suite. Copyright (C) 2012 cpw
*
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* The FML Forge Mod Loader suite. Copyright (C) 2012 cpw
*
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* The FML Forge Mod Loader suite. Copyright (C) 2012 cpw
*
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
packagenet.minecraft.server;
importjava.lang.annotation.ElementType;
importjava.lang.annotation.Retention;
importjava.lang.annotation.RetentionPolicy;
importjava.lang.annotation.Target;
/**
* @author cpw
*
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public@interfaceSidedProxy
{
/**
* The name of the client side class to load and populate
* @return
*/
StringclientSide()default"";
/**
* The name of the server side class to load and populate
* @return
*/
StringserverSide()default"";
/**
* The name of the a special bukkit plugin class to load and populate
* The FML Forge Mod Loader suite. Copyright (C) 2012 cpw
*
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
missingIds.add(String.format("ID %d (ModID: %s, type %s) is missing",entry.getValue().getItemId(),entry.getValue().getModId(),entry.getValue().getItemType()));
mismatchedIds.add(String.format("ID %d is mismatched. World: (ModID: %s, type %s, ordinal %d) Game (ModID: %s, type %s, ordinal %d)",world.getItemId(),world.getModId(),world.getItemType(),world.getOrdinal(),game.getModId(),game.getItemType(),game.getOrdinal()));
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
shifty=drawLine(selectedMod.getMetadata().childMods.isEmpty()?"No child mods for this mod":String.format("Child mods: %s",selectedMod.getMetadata().getChildModList()),offset,shifty);
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
this.parent.getFontRenderer().func_78276_b(this.parent.getFontRenderer().func_78269_a(mc.getMetadata()!=null?mc.getMetadata().getChildModCountString():"Metadata not found",listWidth-10),this.left+3,var3+22,0xCCCCCC);
this.func_73732_a(this.field_73886_k,"Forge Mod Loader has found a problem with your minecraft installation",this.field_73880_f/2,offset,0xFFFFFF);
offset+=10;
this.func_73732_a(this.field_73886_k,String.format("The mod listed below does not want to run in Minecraft version %s",Loader.instance().getMinecraftModContainer().getVersion()),this.field_73880_f/2,offset,0xFFFFFF);
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
FMLLog.finest("Requesting renderers from basemod %s",mc.getModId());
mod.addRenderer(renderers);
FMLLog.finest("Received %d renderers from basemod %s",renderers.size(),mc.getModId());
}
catch(Exceptione)
{
FMLLog.log(Level.SEVERE,e,"A severe problem was detected with the mod %s during the addRenderer call. Continuing, but expect odd results",mc.getModId());
FMLLog.finest("Registering ModLoader entity rendering override for %s as instance of %s",e.getKey().getName(),e.getValue().rightValue().getClass().getName());
FMLLog.log(Level.SEVERE,e,"A severe problem was detected with the mod %s during the registerAnimation call. Continuing, but expect odd results",mc.getModId());
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* The FML Forge Mod Loader suite. Copyright (C) 2012 cpw
*
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* The FML Forge Mod Loader suite. Copyright (C) 2012 cpw
*
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* The FML Forge Mod Loader suite. Copyright (C) 2012 cpw
*
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
packagenet.minecraft.src;
importjava.awt.Graphics2D;
importjava.awt.image.BufferedImage;
importjava.awt.image.ImageObserver;
importnet.minecraft.client.renderer.RenderEngine;
importorg.lwjgl.opengl.GL11;
importcpw.mods.fml.client.FMLClientHandler;
importcpw.mods.fml.client.FMLTextureFX;
/**
* A texture override for animations, it takes a vertical image of
* texture frames and constantly rotates them in the texture.
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
FMLLog.severe("This world was saved with mod %s which appears to be missing, things may not work well",modId);
continue;
}
if(!modVersion.equals(container.getVersion()))
{
FMLLog.info("This world was saved with mod %s version %s and it is now at version %s, things may not work well",modId,modVersion,container.getVersion());
* The FML Forge Mod Loader suite. Copyright (C) 2012 cpw
*
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
FMLLog.warning("Mod %s is missing the required element 'version' and a version.properties file could not be found. Falling back to metadata version %s",getModId(),modMetadata.version);
internalVersion=modMetadata.version;
}
if(Strings.isNullOrEmpty(internalVersion))
{
FMLLog.warning("Mod %s is missing the required element 'version' and no fallback can be found. Substituting '1.0'.",getModId());
FMLLog.severe("The mod %s appears to have an invalid method annotation %s. This annotation can only apply to methods with argument types %s -it will not be called",getModId(),a.annotationType().getSimpleName(),Arrays.toString(paramTypes));
FMLLog.log(Level.WARNING,e,"Attempting to load @%s in class %s for %s and failing",annotationName,targets.getClassName(),mc.getModId());
}
}
if(f!=null)
{
Objecttarget=null;
if(!isStatic)
{
target=modInstance;
if(!modInstance.getClass().equals(clz))
{
FMLLog.warning("Unable to inject @%s in non-static field %s.%s for %s as it is NOT the primary mod instance",annotationName,targets.getClassName(),targets.getObjectName(),mc.getModId());
FMLLog.log(warnLevel,"The mod %s is expecting signature %s for source %s, however there is no signature matching that description",getModId(),expectedFingerprint,source.getName());
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
packagecpw.mods.fml.common;
importnet.minecraft.entity.player.EntityPlayer;
importnet.minecraft.inventory.IInventory;
importnet.minecraft.item.ItemStack;
/**
* Return a crafting handler for the mod container to call
* The FML Forge Mod Loader suite. Copyright (C) 2012 cpw
*
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
packagecpw.mods.fml.common;
importjava.util.Random;
importnet.minecraft.item.ItemStack;
importnet.minecraft.world.World;
/**
* Deprecated without replacement, use vanilla DispenserRegistry code
*
* @author cpw
*
*/
@Deprecated
publicinterfaceIDispenseHandler
{
/**
* Return -1 if you don't want to dispense anything. the other values seem to have specific meanings
* The FML Forge Mod Loader suite. Copyright (C) 2012 cpw
*
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
packagecpw.mods.fml.common;
importjava.util.EnumSet;
/**
*
* Tick handler for mods to implement and register through the TickRegistry
*
* The data available to each tick is documented in the TickType
*
* @author cpw
*
*/
publicinterfaceITickHandler
{
/**
* Called at the "start" phase of a tick
*
* Multiple ticks may fire simultaneously- you will only be called once with all the firing ticks
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
packagecpw.mods.fml.common;
importjava.util.Random;
importnet.minecraft.world.World;
importnet.minecraft.world.chunk.IChunkProvider;
/**
* This is called back during world generation.
*
* @author cpw
*
*/
publicinterfaceIWorldGenerator
{
/**
* Generate some world
*
* @param random the chunk specific {@link Random}.
* @param chunkX the chunk X coordinate of this chunk.
* @param chunkZ the chunk Z coordinate of this chunk.
* @param world : additionalData[0] The minecraft {@link World} we're generating for.
* @param chunkGenerator : additionalData[1] The {@link IChunkProvider} that is generating.
* @param chunkProvider : additionalData[2] {@link IChunkProvider} that is requesting the world generation.
FMLLog.severe("Detected an attempt by a mod %s to perform game activity during mod construction. This is a serious programming error.",activeContainer);
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
FMLLog.info("FML has found a non-mod file %s in your mods directory. It will now be injected into your classpath. This could severe stability issues, it should be removed if possible.",nonMod.getName());
try
{
modClassLoader.addFile(nonMod);
}
catch(MalformedURLExceptione)
{
FMLLog.log(Level.SEVERE,e,"Encountered a weird problem with non-mod file injection : %s",nonMod.getName());
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Loaded 100 of 817 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.