Changelog:
Build 1.7.2-1.1147.04.98:

Build 97:
	jdroque: Fixed EntityItem Spigot patch. Fixes #1381

Build 96:
	jdroque: Fixed ItemBucket patch. Fixes #1380

Build 95:
	jdroque: Fixed param derp with TileEntityHopper.

Build 94:
	jdroque:
		Check container inventory before casting to InventoryPlayer. Fixes #1375
		
		Added missing EntityFireBall patch from previous commit.

Build 93:
	jdroque:
		Added missing patches from new damage api.
		
		Moved block damage hook used by EntityDamageByBlockEvent to
		Entity.doBlockCollisions in order to catch all blocks. Fixes #1373
		
		This commit completes the following CraftBukkit commits :
		
		Bukkit/CraftBukkit@90bcaaaa4d3e6e92d821064a76f43ed254a606c4
		Bukkit/CraftBukkit@bd38a0baa2416db811d8d92a9dc5690c94c6b4c4
		Bukkit/CraftBukkit@0007bba1a20b84c8870d097616c28e77601294f0
		Bukkit/CraftBukkit@bccc961ddf29fa2c9463e5648fc425a78fa4a7b5

Build 92:
	jdroque: Update to MC 1.7.10, Forge 10.13.0.1169, and Bukkit 1.7.9-R0.3

Build 90:
	jdroque: Attempt to fix race condition when attr is null. Fixes #1366

Build 89:
	jdroque: Removed legacy getBukkitToForge method. This build also does not exist.

Build 88:
	jdroque: Fixed config derp.

Build 87:
	jdroque: Another fix to prevent hashCode check with null id.

Build 86:
	jdroque:
		Prevent hashCode check with FakePlayer GameProfile's that contain a null id.
		
		GameProfile javadocs specify either an ID or name can be null/empty yet it
		uses the ID in its hashCode method. To workaround this issue, I now search
		for a matching gameprofile in HashMap, without causing a hashCode check, and
		create a new FakePlayer if no match is found.

Build 85:
	jdroque: Fixed derp in config. This build doesn't exist =)

Build 84:
	jdroque:
		Added configurable TileEntity tick settings. Refactored configuration.
		
		With this new change, each TileEntity that attempts to tick will be added
		to cauldron.yml under world-settings. There are currently 2 options for
		each TileEntity.
		
		The first option is 'tick-no-players'
		- This prevents ticks on a TileEntity if there are no players in range
		  excluding forced chunks with chunkloaders.
		  The default value is false. Setting this to true will make it tick
		  with no players nearby. This setting should be set to true for
		  TileEntities that need to always tick such as ComputerCraft's computer.
		
		The second option is 'tick-interval'
		- This controls how often you want this specific TileEntity to
		  tick. The default is 1 which means you want it to tick every tick.
		  Changing this to a value of 20 would mean it would tick every 20 ticks.
		  Note: this option will only appear when a TE ticks. If the TE has never
		  ticked before, you will not see this show up in config. You can still
		  add the option manually to override it when it does tick.
		
		The default config will apply to all worlds. If you want to override a
		specific TE in a world, you would add it to cauldron.yml like the example
		below :
		
		world-settings:
		  worldname:
		    tileentities:
		      net-minecraft-tileentity-TileEntityChest:
		        tick-no-players: false
		        tick-interval: 1
		
		* added TileEntityCache to improve performance overall with new config.
		- Whenever a TileEntity ticks, if it hasn't been seen before, a new
		  TileEntityCache will be created with the data found in config. For each
		  new tick, the te config data will be accessed from the cache to avoid
		  performance issues.
		  If you modify the config, you need to reload by running '/cauldron
		  reload'. This will update the TileEntityCache so it works immediately.
		
		* added caching for entity immediate despawn checks.
		* Fixed many configuration bugs.
		* You can now modify anything in cauldron.yml then execute
		'/cauldron reload' to have it take effect in game. For other configuration
		options use the '/cauldron' command.
		* Added StructureStart NPE check to prevent crashes with broken structure
		components.
		* ChunkGC is disabled again by default. If you experience a high chunk load,
		enable chunk-gc in bukkit.yml.
		Note: as stated in previous commits, you may experience issues with mods with
		ChunkGC turned on.

Build 83:
	jdroque:
		Added TileEntityCache to improve performance overall with new config.
		
		Whenever a TileEntity ticks, if it hasn't been seen before, a new
		TileEntityCache will be created with the data found in config. For each
		new tick, the te config data will be accessed from the cache to avoid
		performance issues.
		If you modify the config, you need to reload by running '/cauldron reload'. This
		will update the TileEntityCache so it works immediately.
		
		* added caching for entity immediate despawn checks.

Build 82:
	jdroque: Fixed config NPE with DimensionManager. Fixes #1333, #1335

Build 81:
	jdroque:
		Final build. Fixes #1327
		
		The battle for GC being on and off is finally over, GC stays off.
		Agarian Skies servers recommended to turn on. IC2, EnderIO, BOP servers
		are recommended it remains off.
		
		To alter setting, use bukkit.yml and change chunk-gc.enabled to false or
		true.
		
		This is the final 1.6.4 build.
	jdroque:
		Added configurable TileEntity tick settings. Refactored configuration.
		
		With this new change, each TileEntity that attempts to tick will be added
		to cauldron.yml under world-settings. There are currently 2 options for
		each TileEntity.
		
		The first option is 'tick-no-players'
		- This prevents ticks on a TileEntity if there are no players in range
		  excluding forced chunks with chunkloaders.
		  The default value is false. Setting this to true will make it tick with
		  no players nearby. This setting should be set to true for TileEntities
		  that need to always tick such as ComputerCraft's computer.
		
		The second option is 'tick-interval'
		- This controls how often you want this specific TileEntity to tick. The
		  default is 1 which means you want it to tick every tick. Changing this
		  to a value of 20 would mean it would tick every 20 ticks.
		
		The default config will apply to all worlds. If you want to override a
		specific TE in a world, you would add it to cauldron.yml like the example
		below :
		
		world-settings:
		  worldname:
		    tileentities:
		      net-minecraft-tileentity-TileEntityChest:
		        tick-no-players: false
			tick-interval: 1
		
		* Fixed many configuration bugs. You can now modify anything in
		cauldron.yml then execute '/cauldron reload' to have it take effect in
		game. For other configuration options use the '/cauldron' command.
		* Added StructureStart NPE check to prevent crashes with broken structure
		components.
		* ChunkGC is disabled again by default. If you experience a high chunk load, enable
		chunk-gc in bukkit.yml. Note: as stated in previous commits, you may
		experience issues with mods with ChunkGC turned on.

Build 80:
	jdroque: Fixed server ping stalling.

Build 78:
	jdroque:
		Updated README.
		
		Cleaned up some derp code. I need to sleep more and not work on
		bugs I already fixed =)

Build 77:
	jdroque:
		Updated README.
		
		Cleaned up some derp code. I need to sleep more and not work on
		bugs I already fixed =)

Build 76:
	jdroque:
		Don't remove players if detected in wrong chunk location.
		
		* AgarianSkies servers can suffer a big TPS loss with GC not enabled, so I
		have decided to just keep it on like MCPC+ always had. If you experience
		issues, you can set chunk-gc.enabled to false or period-in-ticks to 0.

Build 75:
	jdroque:
		Don't remove players if detected in wrong chunk location.
		
		* AgarianSkies servers can suffer a big TPS loss with GC not enabled, so I
		have decided to just keep it on like MCPC+ always had. If you experience
		issues, you can set chunk-gc.enabled to false or period-in-ticks to 0.

Build 74:
	jdroque:
		Added back ChunkGC disabled by default.
		
		ChunkGC is disabled by default since it affects mods such as BoP, IC2, and others.
		If your server is experiencing lag due to mods leaking too many chunks,
		then you can enable this setting. Be warned that you may experience other
		issues with this turned on as Forge/Vanilla has no ChunkGC by default.
		To enable ChunkGC, you need to set chunk-gc: enabled
		to true in bukkit.yml. You will not see it on first startup unless you
		save or add it manually.
		
		* Fixed skip-ticks-near-unloaded-chunks check.
		* Added new config option "tileentities.skip-ticks-not-near-player" which
		is false by default. Enabling this option will skip TileEntity ticks when
		the player is not near. Forced chunks are not affected.

Build 71:
	jdroque:
		Fixed derp with async chunk patch calling wrong method.
		
		When I setup a PR for forge, I renamed some methods and managed to screw
		up a line in ChunkProviderIO which should be calling the sync method
		originalLoadChunk instead the async method loadChunk resulting in a stackoverflow.

Build 70:
	jdroque: Fixed entity activation config crash with fake worlds.

Build 69:
	jdroque: Fixed entity activation config crash with fake worlds.

Build 68:
	jdroque: Minor logging fix for tracking tiles and entities.

Build 67:
	jdroque:
		Fixed possible deadlock during tree gen. Bunch more fixes.
		
		Fixes #1306, #1307, #1313
		
		* Fixed GameMode command not parsing correctly.
		* Fixed Cauldron debug logging.
		* Added entity removal for entities with invalid locations during chunk load.
		* Added new config option 'entities.skip-ticks-near-unloaded-chunks' which is disabled by default.
		- If set to false, it can help with performance at the expense of entity wandering into unloaded chunks and moveable chunkloaders.
		* Moved config option 'world-settings.default.despawn-immediate' to 'world-settings.default.entities.despawn-immediate'
		* Catch invalid chunkpositions during Stronghold gen
		* Cleaned up some code

Build 66:
	jdroque: Update to Forge 10.12.2.1147

Build 65:
	jdroque:
		Fixed possible deadlock during tree gen. Bunch more fixes.
		
		Fixes #1306, #1313
		
		* Fixed commands not working in eclipse console
		* Fixed Cauldron debug logging.
		* Added entity removal for entities with invalid locations during chunk
		* load.
		* Added missing GameMode used by FakePlayers in Bukkit API.
		* Added new config option 'entities.skip-ticks-near-unloaded-chunks' which is disabled by default.
		  - If set to false, it can help with performance at the expense of entity wandering into unloaded chunks and moveable chunkloaders.
		* Moved config option 'world-settings.default.despawn-immediate' to 'world-settings.default.entities.despawn-immediate'
		* Removed spawnEntityInWorld async check
		* Catch invalid chunkpositions during Stronghold gen
		* Cleaned up some code

Build 64:
	amaranth:
		Don't check unload queue before ticking things anymore.
		
		In commits 71a238e and c859139 we added checks while ticking to ensure
		we never ticked anything in a chunk meant to be unloaded. We did this to
		prevent these chunks being removed from the unload queue and leaked.
		However, this causes a ridiculously large number of lookups on the queue
		for a somewhat rare occurance. We also now have the chunk GC which will
		take care of these leaked chunks when they do happen. With this in mind
		we now remove these checks which removes almost all uses of the
		LongHashSet backing the unload queue.

Build 63:
	amaranth:
		Don't check unload queue before ticking things anymore.
		
		In commits 71a238e and c859139 we added checks while ticking to ensure
		we never ticked anything in a chunk meant to be unloaded. We did this to
		prevent these chunks being removed from the unload queue and leaked.
		However, this causes a ridiculously large number of lookups on the queue
		for a somewhat rare occurance. We also now have the chunk GC which will
		take care of these leaked chunks when they do happen. With this in mind
		we now remove these checks which removes almost all uses of the
		LongHashSet backing the unload queue.

Build 62:
	jdroque:
		Don't skip ticks of entities at edge of chunks.
		
		This adds a lost patch which was added back during 1.5.2
		More info can be found from original commit
		MinecraftPortCentral/MCPC-Plus-Legacy@b967858555b90ba93a47694d384a82afb8f966c2
	hannos17:
		Removing broken chunk caching from World. Fixes BUKKIT-5425
		
		Chunk caching in the World class does not know about outdated cache
		values. This caused various problems when accessing previously unloaded chunks.
		The caching also did not improve the performance so it is removed.
		Synchronization is also not necessary, because all accesses to getChunkAt
		may only come from the main thread.

Build 61:
	hannos17:
		Removing broken chunk caching from World. Fixes BUKKIT-5425
		
		Chunk caching in the World class does not know about outdated cache
		values. This caused various problems when accessing previously unloaded chunks.
		The caching also did not improve the performance so it is removed.
		Synchronization is also not necessary, because all accesses to getChunkAt
		may only come from the main thread.

Build 60:
	jdroque:
		Don't skip ticks of entities at edge of chunks.
		
		This adds a lost patch which was added back during 1.5.2
		More info can be found from original commit
		MinecraftPortCentral/MCPC-Plus-Legacy@b967858555b90ba93a47694d384a82afb8f966c2

Build 59:
	jdroque:
		Don't skip ticks of entities at edge of chunks.
		
		This adds a lost patch which was added back during 1.5.2
		More info can be found from original commit
		MinecraftPortCentral/MCPC-Plus-Legacy@b967858555b90ba93a47694d384a82afb8f966c2

Build 58:
	jdroque: Fixed wrong var used in findMatchingRecipe. Fixes #1206

Build 57:
	jdroque: Don't skip TE ticks in loaded chunks. Fixes #1285

Build 56:
	jdroque: Don't skip TE ticks in loaded chunks. Fixes #1285

Build 54:
	jdroque: Added missing ghost tile entity fix. Fixes #1297

Build 53:
	jdroque:
		Forcing a clean jenkins build due to 1.6.4 issue.
		
		Both 1.6 and 1.7 will now wipe out the workspace after a build is done.
		This should solve any issues with resources being mixed in both versions.

Build 52:
	jdroque: Lets try this again, hopefully jenkins builds correctly this time.

Build 50:
	jdroque:
		Removed 1.7 getShooter overmapped mappings.
		
		I added these in by mistake =)

Build 49:
	jdroque:
		Fixed jline not disabling correctly.
		
		This will fix console logging when jline is disabled like our eclipse dev
		environment.

Build 48:
	jdroque:
		Fixed jline not disabling correctly.
		
		This will fix console logging when jline is disabled like our eclipse dev
		environment.

Build 47:
	jdroque: Added overloaded mappings. Fixes #1283

Build 46:
	jdroque:
		Added support for TerrainControl v2.6.1. Fixes #1272
		
		SpecialSource has a bug with remapping plugins that extend Minecraft
		classes. To workaround this issue, I have added the required mappings for
		TC to work. Keep in mind that TC can break with future updates which will
		require another update on my end.

Build 45:
	jdroque: Fixed derp in respawn code.

Build 44:
	jdroque: Fixed derp in respawn code.

Build 43:
	jdroque:
		Added support for plugins detecting MCPC.
		
		This should fix any issues with plugins not loading correctly due to the
		Cauldron name change.

Build 42:
	jdroque:
		Added legacy support for plugins detecting MCPC. Fixes #1272, #1187
		
		Many plugins are still checking getName() or getVersion() for MCPC so I
		have decided to keep the name within both strings until plugins adapt to
		new Cauldron name.
		
		* Added support for NMS/OBC package versions R2 and R3. This should allow
		latest CraftBukkit plugins to load correctly assuming they do not call a
		new method added post 1.7.2.

Build 41:
	jdroque: Added some more checks for mods that use Fake Worlds. Fixes #679

Build 40:
	jdroque: Fixed tab completion with mods and plugins. Fixes #426

Build 39:
	jdroque: Validate chunkcoordinates during calculateTarget. Fixes #602

Build 38:
	jdroque: Fixed tab completion with mods and plugins. Fixes #426

Build 37:
	jdroque:
		Changed version output for filename.
		
		Version will now be as follows : mc-cauldron.forge.build
		ex. cauldron-1.6.4-1.965.1
		If I push a major change for cauldron, I will simply increment our version
		by 1.
	jdroque: Added missing deprecated methods in GameRegistry.
	jdroque: Added back modloader since it still exists in last 1.6.4 forge build.
	jdroque: More changes to get back to compatible FML version. Should fix ID issues.
	jdroque:
		Fixed guava10 remapping. Fixed mystcraft age trapping. Fixes #1217
		
		Fixed bukkit KillCommand ignoring LivingDeathEvent.
	jdroque:
		Finished refactor of EntityItem death drops. Fixes #996
		
		This completes the refactor which started in commit
		MinecraftPortCentral/Cauldron@aadc2f3
		
		* Refactored plugin custom entity support
		- Plugins now have the ability to use the CraftWorld.spawnEntity method to
		spawn any custom entity. In order for this to work properly, Cauldron will
		inject all new EntityTypes into the Bukkit enum. Simply pass the custom
		EntityType to CraftWorld.spawnEntity to spawn it.
		
		* Removed most Cauldron custom entity classes as they are no longer used.
		
		* Moved horse inventory dropping which was fixed in commit
		Bukkit/CraftBukkit@fb58cc9
	jdroque:
		Refactored respawn code some more. Fixes #637
		
		* Fixed bed spawns not being used when location wasn't null.
		* Fixed broken respawns caused by previous commit.
	jdroque:
		Add support for new MobiusCore. Fixes #1231
		
		You must update to the latest MobiusCore_1.2.2_1.6.4 or Opis will not work.
		
		* Add NMS remapping support for PluginClassLoader's findClass.  Fixes #1253
		
		In some cases, plugins may make direct calls to the PluginClassLoader
		findClass method. Instead of throwing an exception, it will now locate the
		mapping and pass it off to Forge's LaunchClassLoader.
		
		* Change CraftServer.serverName to "Cauldron-MCPC-Plus" to maintain
		compatibility with plugins looking for old name.
	jdroque:
		Added detection for corrupt TileEntities. Fixes #1228
		
		Corrupted TileEntities will now be removed automatically if detected. The
		details of the TE will be printed to terminal to help debug the issue.
		
		* fixed another respawn bug with certain mods
	jdroque: Only check for beds when leaving the End. Fixes #1262
	jdroque:
		Fixed build.gradle to support Forge's Jenkins.
		
		All future 1.6.4 builds will now be located at
		http://files.minecraftforge.net/Cauldron/
		
		You will need to choose MC version 1.6.4 to see all builds.

Build 35:
	jdroque: Only check for beds when leaving the End. Fixes #1262

Build 32:
	jdroque:
		Fixed wrong Messenger channel size in Bukkit API. Fixes #1260
		
		C17PacketCustomPayload channel size was increased from 16 to 20 in 1.7
		update.

Build 31:
	jdroque: Fixed respawn bug with HardcoreEnderExpansion. Fixes #1257

Build 30:
	jdroque:
		Add missing GameMode used by FakePlayers in Bukkit API. Fixes #1233
		
		FakePlayers do not set their GameMode which results in using the default
		'NOT_SET(-1)' GameMode. Since this does not exist in Bukkit's API, any
		references from plugins to player.getGameMode() will be null. This commit
		simply adds the missing gamemode.

Build 29:
	jdroque: Added back bukkitVersion to fix build script.

Build 28:
	jdroque: Update to Forge 10.12.2.1126
	jdroque: Update to Forge 10.12.2.1126

Build 26:
	jdroque:
		Refactored respawn code some more. Fixes #637
		
		* Fixed bed spawns not being used when location wasn't null.
		* Fixed broken respawns caused by previous commit.

Build 25:
	jdroque:
		Finished refactor of EntityItem death drops.
		
		This completes the refactor which started in commit
		MinecraftPortCentral/Cauldron@aadc2f319f7db308043e4072eb93114604593697
		
		* Fixed mystcraft age trapping.
		* Fixed bukkit KillCommand ignoring LivingDeathEvent.
		* Moved horse inventory dropping which was fixed in commit
		Bukkit/CraftBukkit@fb58cc92375d85bfe7a3dc8671c70d1a4e308e3c

Build 21:
	jdroque:
		Removed ChunkGC as it can cause a bunch of chunk churning with mods.
		
		This should fix the compatibility issue we had with ChickenChunk's
		cleanupTime chunk GC.

Build 18:
	jdroque:
		Refactored log4j2 config for better logging.
		
		The default logging level from FML package is now INFO. If you require more
		output in FML logs, open jar and edit the log4j2.xml in root then change
		FmlFile's logging level from INFO to something else such as TRACE or DEBUG.
		
		* Fixed getBukkitVersion returning Unknown-Version. Fixes #1205

Build 17:
	jdroque: Fixed plugin initialization during startup. Fixes #1195

Build 16:
	jdroque: Update Forge to 10.12.1.1112

Build 15:
	jdroque:
		Fixed Bukkit material injection not using remapped id's from FML after
		
		changing mods. Fixes #1078
		
		* Fixed plugin issues with Material Enums being modified after load.
		Fixes #1084
		* Renamed eclipse workspace from MCPC to Cauldron

Build 14:
	jdroque:
		Add support for Bukkit's version safeguard.
		
		Finally got shading working with gradle thanks to AbrarSyed =)
		This should fix a bunch of plugins that check for a package version.
		
		ex. PortableHorses does the following to get server version
		
		String packageName = this.getServer().getClass().getPackage().getName();
		String version = packageName.substring(packageName.lastIndexOf('.')+ 1);
		
		This will now work and properly return a valid package version such as
		"v1_7_R1".

Build 13:
	rjwboys:
		Update CauldronConfig.java
		
		fixed url of forums

Build 12:
	jdroque:
		Fixed FML startup bug when changing mods due to multiple SaveHandlers.
		
		Fixes #1068, #1078
		
		Forge/Vanilla both use the overworld SaveHandler for all worlds while
		Cauldron creates a SaveHandler for each world to maintain compatibility
		with Bukkit plugins. This caused FML to bug out when running it's
		handleWorldDataLoad hook since it never expects to deal with more than 1
		savehandler.

Build 11:
	jdroque:
		Fixed a potential block removal stackoverflow. Fixes #1165, #1169
		
		Removed a CB patch that fixes BUKKIT-5238 to prevent a possible
		stackoverflow from occuring with specific mods such as Thaumcraft and
		Carpenter's Blocks.

Build 10:
	jdroque: Change classifier name to 'server' as we do not support client.

Build 9:
	jdroque: Fix version in build.gradle
	jdroque: Fix version in build.gradle
	jdroque: Add classifier for builds.

Build 3:
	jdroque: Removed MCP conf data from mappings as it is no longer used.

