├── .gitignore
├── LICENSE
├── README.md
├── pom.xml
└── src
├── main
├── assembly
│ └── default.xml
├── java
│ ├── com
│ │ └── mojang
│ │ │ └── authlib
│ │ │ └── yggdrasil
│ │ │ ├── YggdrasilAuthenticationServiceModified.java
│ │ │ └── YggdrasilMinecraftSessionServiceModified.java
│ └── net
│ │ ├── canarymod
│ │ ├── CanaryMod.java
│ │ ├── Main.java
│ │ ├── NativeTranslate.java
│ │ ├── NotYetImplementedException.java
│ │ ├── PortalReconstructJob.java
│ │ ├── WorldCacheTimer.java
│ │ ├── api
│ │ │ ├── CanaryBoundingBox.java
│ │ │ ├── CanaryConfigurationManager.java
│ │ │ ├── CanaryDamageSource.java
│ │ │ ├── CanaryDataWatcher.java
│ │ │ ├── CanaryEntityTracker.java
│ │ │ ├── CanaryEntityTrackerEntry.java
│ │ │ ├── CanaryMobSpawnerEntry.java
│ │ │ ├── CanaryMobSpawnerLogic.java
│ │ │ ├── CanaryNetServerHandler.java
│ │ │ ├── CanaryOfflinePlayer.java
│ │ │ ├── CanaryPathFinder.java
│ │ │ ├── CanaryPathFinderNPC.java
│ │ │ ├── CanaryPlayerManager.java
│ │ │ ├── CanaryServer.java
│ │ │ ├── CanaryVillagerTrade.java
│ │ │ ├── ai
│ │ │ │ ├── CanaryAIArrowAttack.java
│ │ │ │ ├── CanaryAIAttackOnCollide.java
│ │ │ │ ├── CanaryAIAvoidEntity.java
│ │ │ │ ├── CanaryAIBase.java
│ │ │ │ ├── CanaryAIBeg.java
│ │ │ │ ├── CanaryAIBreakDoor.java
│ │ │ │ ├── CanaryAIControlledByPlayer.java
│ │ │ │ ├── CanaryAICreeperSwell.java
│ │ │ │ ├── CanaryAIDefendVillage.java
│ │ │ │ ├── CanaryAIDoorInteract.java
│ │ │ │ ├── CanaryAIEatGrass.java
│ │ │ │ ├── CanaryAIFindEntityNearest.java
│ │ │ │ ├── CanaryAIFindEntityNearestPlayer.java
│ │ │ │ ├── CanaryAIFleeSun.java
│ │ │ │ ├── CanaryAIFollowGolem.java
│ │ │ │ ├── CanaryAIFollowOwner.java
│ │ │ │ ├── CanaryAIFollowParent.java
│ │ │ │ ├── CanaryAIHarvestFarmland.java
│ │ │ │ ├── CanaryAIHurtByTarget.java
│ │ │ │ ├── CanaryAILeapAtTarget.java
│ │ │ │ ├── CanaryAILookAtTradePlayer.java
│ │ │ │ ├── CanaryAILookAtVillager.java
│ │ │ │ ├── CanaryAILookIdle.java
│ │ │ │ ├── CanaryAIManager.java
│ │ │ │ ├── CanaryAIMate.java
│ │ │ │ ├── CanaryAIMoveIndoors.java
│ │ │ │ ├── CanaryAIMoveThroughVillage.java
│ │ │ │ ├── CanaryAIMoveToBlock.java
│ │ │ │ ├── CanaryAIMoveTowardsRestriction.java
│ │ │ │ ├── CanaryAIMoveTowardsTarget.java
│ │ │ │ ├── CanaryAINearestAttackableTarget.java
│ │ │ │ ├── CanaryAIOcelotAttack.java
│ │ │ │ ├── CanaryAIOcelotSit.java
│ │ │ │ ├── CanaryAIOpenDoor.java
│ │ │ │ ├── CanaryAIOwnerHurtByTarget.java
│ │ │ │ ├── CanaryAIOwnerHurtTarget.java
│ │ │ │ ├── CanaryAIPanic.java
│ │ │ │ ├── CanaryAIPlay.java
│ │ │ │ ├── CanaryAIRestrictOpenDoor.java
│ │ │ │ ├── CanaryAIRestrictSun.java
│ │ │ │ ├── CanaryAIRunAroundLikeCrazy.java
│ │ │ │ ├── CanaryAISit.java
│ │ │ │ ├── CanaryAISwimming.java
│ │ │ │ ├── CanaryAITarget.java
│ │ │ │ ├── CanaryAITargetNonTamed.java
│ │ │ │ ├── CanaryAITempt.java
│ │ │ │ ├── CanaryAITradePlayer.java
│ │ │ │ ├── CanaryAIVillagerInteract.java
│ │ │ │ ├── CanaryAIVillagerMate.java
│ │ │ │ ├── CanaryAIWander.java
│ │ │ │ ├── CanaryAIWatchClosest.java
│ │ │ │ ├── CanaryAIWatchClosest2.java
│ │ │ │ └── EntityAICanary.java
│ │ │ ├── attributes
│ │ │ │ ├── CanaryAttribute.java
│ │ │ │ ├── CanaryAttributeMap.java
│ │ │ │ ├── CanaryAttributeModifier.java
│ │ │ │ ├── CanaryModifiedAttribute.java
│ │ │ │ └── CanaryRangedAttribute.java
│ │ │ ├── channels
│ │ │ │ └── CanaryChannelManager.java
│ │ │ ├── chat
│ │ │ │ ├── CanaryChatComponent.java
│ │ │ │ ├── CanaryChatFormatting.java
│ │ │ │ ├── CanaryChatStyle.java
│ │ │ │ ├── CanaryClickEvent.java
│ │ │ │ ├── CanaryClickEventAction.java
│ │ │ │ ├── CanaryHoverEvent.java
│ │ │ │ └── CanaryHoverEventAction.java
│ │ │ ├── commandsys
│ │ │ │ └── CanaryPlayerSelector.java
│ │ │ ├── entity
│ │ │ │ ├── CanaryArmorStand.java
│ │ │ │ ├── CanaryArrow.java
│ │ │ │ ├── CanaryEnderCrystal.java
│ │ │ │ ├── CanaryEnderEye.java
│ │ │ │ ├── CanaryEntity.java
│ │ │ │ ├── CanaryEntityItem.java
│ │ │ │ ├── CanaryFallingBlock.java
│ │ │ │ ├── CanaryFireball.java
│ │ │ │ ├── CanaryFireworkRocket.java
│ │ │ │ ├── CanaryLargeFireball.java
│ │ │ │ ├── CanaryProjectile.java
│ │ │ │ ├── CanarySmallFireball.java
│ │ │ │ ├── CanaryTNTPrimed.java
│ │ │ │ ├── CanaryWitherSkull.java
│ │ │ │ ├── CanaryXPOrb.java
│ │ │ │ ├── effect
│ │ │ │ │ ├── CanaryLightningBolt.java
│ │ │ │ │ └── CanaryWeatherEffect.java
│ │ │ │ ├── hanging
│ │ │ │ │ ├── CanaryHangingEntity.java
│ │ │ │ │ ├── CanaryItemFrame.java
│ │ │ │ │ ├── CanaryLeashKnot.java
│ │ │ │ │ └── CanaryPainting.java
│ │ │ │ ├── living
│ │ │ │ │ ├── CanaryEntityLiving.java
│ │ │ │ │ ├── CanaryIronGolem.java
│ │ │ │ │ ├── CanaryLivingBase.java
│ │ │ │ │ ├── CanarySnowman.java
│ │ │ │ │ ├── animal
│ │ │ │ │ │ ├── CanaryAgeableAnimal.java
│ │ │ │ │ │ ├── CanaryAnimal.java
│ │ │ │ │ │ ├── CanaryBat.java
│ │ │ │ │ │ ├── CanaryChicken.java
│ │ │ │ │ │ ├── CanaryCow.java
│ │ │ │ │ │ ├── CanaryHorse.java
│ │ │ │ │ │ ├── CanaryMooshroom.java
│ │ │ │ │ │ ├── CanaryOcelot.java
│ │ │ │ │ │ ├── CanaryPig.java
│ │ │ │ │ │ ├── CanaryRabbit.java
│ │ │ │ │ │ ├── CanarySheep.java
│ │ │ │ │ │ ├── CanarySquid.java
│ │ │ │ │ │ ├── CanaryTameable.java
│ │ │ │ │ │ └── CanaryWolf.java
│ │ │ │ │ ├── humanoid
│ │ │ │ │ │ ├── CanaryHuman.java
│ │ │ │ │ │ ├── CanaryHumanCapabilities.java
│ │ │ │ │ │ ├── CanaryNonPlayableCharacter.java
│ │ │ │ │ │ ├── CanaryPlayer.java
│ │ │ │ │ │ ├── CanaryVillager.java
│ │ │ │ │ │ ├── EntityNonPlayableCharacter.java
│ │ │ │ │ │ └── npchelpers
│ │ │ │ │ │ │ ├── EntityNPCJumpHelper.java
│ │ │ │ │ │ │ ├── EntityNPCLookHelper.java
│ │ │ │ │ │ │ ├── EntityNPCMoveHelper.java
│ │ │ │ │ │ │ ├── PathNavigateGroundNPC.java
│ │ │ │ │ │ │ └── PathNavigateNPC.java
│ │ │ │ │ └── monster
│ │ │ │ │ │ ├── CanaryBlaze.java
│ │ │ │ │ │ ├── CanaryCaveSpider.java
│ │ │ │ │ │ ├── CanaryCreeper.java
│ │ │ │ │ │ ├── CanaryEnderDragon.java
│ │ │ │ │ │ ├── CanaryEnderman.java
│ │ │ │ │ │ ├── CanaryEndermite.java
│ │ │ │ │ │ ├── CanaryEntityMob.java
│ │ │ │ │ │ ├── CanaryGhast.java
│ │ │ │ │ │ ├── CanaryGiantZombie.java
│ │ │ │ │ │ ├── CanaryGuardian.java
│ │ │ │ │ │ ├── CanaryMagmaCube.java
│ │ │ │ │ │ ├── CanaryPigZombie.java
│ │ │ │ │ │ ├── CanarySilverfish.java
│ │ │ │ │ │ ├── CanarySkeleton.java
│ │ │ │ │ │ ├── CanarySlime.java
│ │ │ │ │ │ ├── CanarySpider.java
│ │ │ │ │ │ ├── CanaryWitch.java
│ │ │ │ │ │ ├── CanaryWither.java
│ │ │ │ │ │ └── CanaryZombie.java
│ │ │ │ ├── throwable
│ │ │ │ │ ├── CanaryChickenEgg.java
│ │ │ │ │ ├── CanaryEnderPearl.java
│ │ │ │ │ ├── CanaryEntityPotion.java
│ │ │ │ │ ├── CanaryEntityThrowable.java
│ │ │ │ │ ├── CanarySnowball.java
│ │ │ │ │ └── CanaryXPBottle.java
│ │ │ │ └── vehicle
│ │ │ │ │ ├── CanaryAnimalVehicle.java
│ │ │ │ │ ├── CanaryBoat.java
│ │ │ │ │ ├── CanaryChestMinecart.java
│ │ │ │ │ ├── CanaryCommandBlockMinecart.java
│ │ │ │ │ ├── CanaryContainerMinecart.java
│ │ │ │ │ ├── CanaryEmptyMinecart.java
│ │ │ │ │ ├── CanaryFurnaceMinecart.java
│ │ │ │ │ ├── CanaryHopperMinecart.java
│ │ │ │ │ ├── CanaryMinecart.java
│ │ │ │ │ ├── CanaryMobSpawnerMinecart.java
│ │ │ │ │ ├── CanaryTNTMinecart.java
│ │ │ │ │ └── CanaryVehicle.java
│ │ │ ├── factory
│ │ │ │ ├── CanaryAIFactory.java
│ │ │ │ ├── CanaryAttributeFactory.java
│ │ │ │ ├── CanaryChatComponentFactory.java
│ │ │ │ ├── CanaryEntityFactory.java
│ │ │ │ ├── CanaryFactory.java
│ │ │ │ ├── CanaryItemFactory.java
│ │ │ │ ├── CanaryNBTFactory.java
│ │ │ │ ├── CanaryObjectFactory.java
│ │ │ │ ├── CanaryPacketFactory.java
│ │ │ │ ├── CanaryPotionFactory.java
│ │ │ │ └── CanaryStatisticsFactory.java
│ │ │ ├── inventory
│ │ │ │ ├── CanaryAnimalInventory.java
│ │ │ │ ├── CanaryBaseItem.java
│ │ │ │ ├── CanaryBlockInventory.java
│ │ │ │ ├── CanaryCustomStorageInventory.java
│ │ │ │ ├── CanaryEnchantment.java
│ │ │ │ ├── CanaryEnderChestInventory.java
│ │ │ │ ├── CanaryEntityInventory.java
│ │ │ │ ├── CanaryItem.java
│ │ │ │ ├── CanaryMapData.java
│ │ │ │ ├── CanaryOfflineEnderChestInventory.java
│ │ │ │ ├── CanaryOfflinePlayerInventory.java
│ │ │ │ ├── CanaryPlayerCraftingMatrix.java
│ │ │ │ ├── CanaryPlayerInventory.java
│ │ │ │ ├── CanaryVillagerInventory.java
│ │ │ │ ├── NativeCustomStorageInventory.java
│ │ │ │ ├── recipes
│ │ │ │ │ ├── CanaryRecipe.java
│ │ │ │ │ ├── CanaryShapedRecipe.java
│ │ │ │ │ ├── CanaryShapelessRecipe.java
│ │ │ │ │ └── ShapedRecipeHelper.java
│ │ │ │ └── slot
│ │ │ │ │ └── SlotHelper.java
│ │ │ ├── nbt
│ │ │ │ ├── CanaryBaseTag.java
│ │ │ │ ├── CanaryByteArrayTag.java
│ │ │ │ ├── CanaryByteTag.java
│ │ │ │ ├── CanaryCompoundTag.java
│ │ │ │ ├── CanaryDoubleTag.java
│ │ │ │ ├── CanaryFloatTag.java
│ │ │ │ ├── CanaryIntArrayTag.java
│ │ │ │ ├── CanaryIntTag.java
│ │ │ │ ├── CanaryListTag.java
│ │ │ │ ├── CanaryLongTag.java
│ │ │ │ ├── CanaryPrimitiveTag.java
│ │ │ │ ├── CanaryShortTag.java
│ │ │ │ ├── CanaryStringTag.java
│ │ │ │ ├── ListTagIterator.java
│ │ │ │ └── ListTagListIterator.java
│ │ │ ├── packet
│ │ │ │ ├── CanaryBlockChangePacket.java
│ │ │ │ └── CanaryPacket.java
│ │ │ ├── potion
│ │ │ │ ├── CanaryPotion.java
│ │ │ │ └── CanaryPotionEffect.java
│ │ │ ├── scoreboard
│ │ │ │ ├── CanaryScore.java
│ │ │ │ ├── CanaryScoreDummyCriteria.java
│ │ │ │ ├── CanaryScoreHealthCriteria.java
│ │ │ │ ├── CanaryScoreObjective.java
│ │ │ │ ├── CanaryScoreboard.java
│ │ │ │ ├── CanaryScoreboardManager.java
│ │ │ │ ├── CanaryTeam.java
│ │ │ │ └── ScoreCanaryCriteria.java
│ │ │ ├── statistics
│ │ │ │ ├── CanaryAchievement.java
│ │ │ │ └── CanaryStat.java
│ │ │ └── world
│ │ │ │ ├── CanaryBiome.java
│ │ │ │ ├── CanaryChunk.java
│ │ │ │ ├── CanaryChunkProviderCustom.java
│ │ │ │ ├── CanaryChunkProviderServer.java
│ │ │ │ ├── CanarySaveConverter.java
│ │ │ │ ├── CanaryVillage.java
│ │ │ │ ├── CanaryWorld.java
│ │ │ │ ├── CanaryWorldManager.java
│ │ │ │ ├── blocks
│ │ │ │ ├── CanaryAnvil.java
│ │ │ │ ├── CanaryBanner.java
│ │ │ │ ├── CanaryBeacon.java
│ │ │ │ ├── CanaryBlock.java
│ │ │ │ ├── CanaryBlockBase.java
│ │ │ │ ├── CanaryBlockMaterial.java
│ │ │ │ ├── CanaryBrewingStand.java
│ │ │ │ ├── CanaryChest.java
│ │ │ │ ├── CanaryCommandBlock.java
│ │ │ │ ├── CanaryComparator.java
│ │ │ │ ├── CanaryDaylightDetector.java
│ │ │ │ ├── CanaryDispenser.java
│ │ │ │ ├── CanaryDoubleChest.java
│ │ │ │ ├── CanaryDropper.java
│ │ │ │ ├── CanaryEnchantmentTable.java
│ │ │ │ ├── CanaryFurnace.java
│ │ │ │ ├── CanaryHopperBlock.java
│ │ │ │ ├── CanaryJukebox.java
│ │ │ │ ├── CanaryLockableTileEntity.java
│ │ │ │ ├── CanaryMapColor.java
│ │ │ │ ├── CanaryMobSpawner.java
│ │ │ │ ├── CanaryNoteBlock.java
│ │ │ │ ├── CanarySign.java
│ │ │ │ ├── CanarySkull.java
│ │ │ │ ├── CanaryTileEntity.java
│ │ │ │ ├── CanaryWorkbench.java
│ │ │ │ └── properties
│ │ │ │ │ ├── BlockStateMapper.java
│ │ │ │ │ ├── CanaryBlockBooleanProperty.java
│ │ │ │ │ ├── CanaryBlockDirectionProperty.java
│ │ │ │ │ ├── CanaryBlockEnumProperty.java
│ │ │ │ │ ├── CanaryBlockIntegerProperty.java
│ │ │ │ │ └── CanaryBlockProperty.java
│ │ │ │ └── position
│ │ │ │ └── BlockPosition.java
│ │ ├── serialize
│ │ │ ├── EnchantmentSerializer.java
│ │ │ └── ItemSerializer.java
│ │ └── util
│ │ │ ├── CanaryJsonNBTUtility.java
│ │ │ ├── ForwardLogHandler.java
│ │ │ ├── NMSToolBox.java
│ │ │ ├── ObjectPool.java
│ │ │ ├── ShutdownLogger.java
│ │ │ ├── SysOutWriterThread.java
│ │ │ └── Unwrapper.java
│ │ └── minecraft
│ │ ├── block
│ │ ├── Block.java
│ │ ├── BlockAnvil.java
│ │ ├── BlockBasePressurePlate.java
│ │ ├── BlockButton.java
│ │ ├── BlockCactus.java
│ │ ├── BlockChest.java
│ │ ├── BlockCocoa.java
│ │ ├── BlockCompressedPowered.java
│ │ ├── BlockCrops.java
│ │ ├── BlockDaylightDetector.java
│ │ ├── BlockDispenser.java
│ │ ├── BlockDoor.java
│ │ ├── BlockDoublePlant.java
│ │ ├── BlockDynamicLiquid.java
│ │ ├── BlockFalling.java
│ │ ├── BlockFire.java
│ │ ├── BlockJukebox.java
│ │ ├── BlockLeaves.java
│ │ ├── BlockLever.java
│ │ ├── BlockMushroom.java
│ │ ├── BlockNetherWart.java
│ │ ├── BlockPistonBase.java
│ │ ├── BlockPortal.java
│ │ ├── BlockRailDetector.java
│ │ ├── BlockRedstoneComparator.java
│ │ ├── BlockRedstoneDiode.java
│ │ ├── BlockRedstoneRepeater.java
│ │ ├── BlockRedstoneTorch.java
│ │ ├── BlockRedstoneWire.java
│ │ ├── BlockReed.java
│ │ ├── BlockSapling.java
│ │ ├── BlockSlab.java
│ │ ├── BlockStaticLiquid.java
│ │ ├── BlockStem.java
│ │ ├── BlockTNT.java
│ │ ├── BlockTripWireHook.java
│ │ ├── BlockVine.java
│ │ └── material
│ │ │ ├── MapColor.java
│ │ │ └── Material.java
│ │ ├── command
│ │ ├── CommandDefaultGameMode.java
│ │ ├── CommandDifficulty.java
│ │ ├── CommandExecuteAt.java
│ │ ├── CommandGameRule.java
│ │ ├── CommandHandler.java
│ │ ├── CommandSetSpawnpoint.java
│ │ ├── CommandTime.java
│ │ ├── CommandToggleDownfall.java
│ │ ├── CommandWeather.java
│ │ ├── CommandWorldBorder.java
│ │ ├── PlayerSelector.java
│ │ ├── ServerCommandManager.java
│ │ └── server
│ │ │ ├── CommandBlockLogic.java
│ │ │ ├── CommandSaveAll.java
│ │ │ ├── CommandSaveOff.java
│ │ │ ├── CommandSaveOn.java
│ │ │ ├── CommandScoreboard.java
│ │ │ ├── CommandStop.java
│ │ │ ├── CommandSummon.java
│ │ │ └── CommandTeleport.java
│ │ ├── dispenser
│ │ ├── BehaviorDefaultDispenseItem.java
│ │ └── BehaviorProjectileDispense.java
│ │ ├── entity
│ │ ├── Entity.java
│ │ ├── EntityHanging.java
│ │ ├── EntityLeashKnot.java
│ │ ├── EntityLiving.java
│ │ ├── EntityLivingBase.java
│ │ ├── EntityMinecartCommandBlock.java
│ │ ├── EntityTracker.java
│ │ ├── EntityTrackerEntry.java
│ │ ├── ai
│ │ │ ├── EntityAIArrowAttack.java
│ │ │ ├── EntityAIAttackOnCollide.java
│ │ │ ├── EntityAIAvoidEntity.java
│ │ │ ├── EntityAIBase.java
│ │ │ ├── EntityAIBeg.java
│ │ │ ├── EntityAIBreakDoor.java
│ │ │ ├── EntityAIControlledByPlayer.java
│ │ │ ├── EntityAICreeperSwell.java
│ │ │ ├── EntityAIDefendVillage.java
│ │ │ ├── EntityAIDoorInteract.java
│ │ │ ├── EntityAIEatGrass.java
│ │ │ ├── EntityAIFindEntityNearest.java
│ │ │ ├── EntityAIFindEntityNearestPlayer.java
│ │ │ ├── EntityAIFleeSun.java
│ │ │ ├── EntityAIFollowGolem.java
│ │ │ ├── EntityAIFollowOwner.java
│ │ │ ├── EntityAIFollowParent.java
│ │ │ ├── EntityAIHarvestFarmland.java
│ │ │ ├── EntityAIHurtByTarget.java
│ │ │ ├── EntityAILeapAtTarget.java
│ │ │ ├── EntityAILookAtTradePlayer.java
│ │ │ ├── EntityAILookAtVillager.java
│ │ │ ├── EntityAILookIdle.java
│ │ │ ├── EntityAIMate.java
│ │ │ ├── EntityAIMoveIndoors.java
│ │ │ ├── EntityAIMoveThroughVillage.java
│ │ │ ├── EntityAIMoveToBlock.java
│ │ │ ├── EntityAIMoveTowardsRestriction.java
│ │ │ ├── EntityAIMoveTowardsTarget.java
│ │ │ ├── EntityAINearestAttackableTarget.java
│ │ │ ├── EntityAIOcelotAttack.java
│ │ │ ├── EntityAIOcelotSit.java
│ │ │ ├── EntityAIOpenDoor.java
│ │ │ ├── EntityAIOwnerHurtByTarget.java
│ │ │ ├── EntityAIOwnerHurtTarget.java
│ │ │ ├── EntityAIPanic.java
│ │ │ ├── EntityAIPlay.java
│ │ │ ├── EntityAIRestrictOpenDoor.java
│ │ │ ├── EntityAIRestrictSun.java
│ │ │ ├── EntityAIRunAroundLikeCrazy.java
│ │ │ ├── EntityAISit.java
│ │ │ ├── EntityAISwimming.java
│ │ │ ├── EntityAITarget.java
│ │ │ ├── EntityAITargetNonTamed.java
│ │ │ ├── EntityAITasks.java
│ │ │ ├── EntityAITempt.java
│ │ │ ├── EntityAITradePlayer.java
│ │ │ ├── EntityAIVillagerInteract.java
│ │ │ ├── EntityAIVillagerMate.java
│ │ │ ├── EntityAIWander.java
│ │ │ ├── EntityAIWatchClosest.java
│ │ │ ├── EntityAIWatchClosest2.java
│ │ │ ├── EntityMinecartMobSpawner.java
│ │ │ └── attributes
│ │ │ │ ├── AttributeModifier.java
│ │ │ │ ├── BaseAttribute.java
│ │ │ │ ├── BaseAttributeMap.java
│ │ │ │ ├── IAttribute.java
│ │ │ │ ├── IAttributeInstance.java
│ │ │ │ ├── ModifiableAttributeInstance.java
│ │ │ │ ├── RangedAttribute.java
│ │ │ │ └── ServersideAttributeMap.java
│ │ ├── boss
│ │ │ ├── EntityDragon.java
│ │ │ └── EntityWither.java
│ │ ├── effect
│ │ │ ├── EntityLightningBolt.java
│ │ │ └── EntityWeatherEffect.java
│ │ ├── item
│ │ │ ├── EntityArmorStand.java
│ │ │ ├── EntityBoat.java
│ │ │ ├── EntityEnderCrystal.java
│ │ │ ├── EntityEnderEye.java
│ │ │ ├── EntityEnderPearl.java
│ │ │ ├── EntityExpBottle.java
│ │ │ ├── EntityFallingBlock.java
│ │ │ ├── EntityFireworkRocket.java
│ │ │ ├── EntityItem.java
│ │ │ ├── EntityItemFrame.java
│ │ │ ├── EntityMinecart.java
│ │ │ ├── EntityMinecartChest.java
│ │ │ ├── EntityMinecartContainer.java
│ │ │ ├── EntityMinecartEmpty.java
│ │ │ ├── EntityMinecartFurnace.java
│ │ │ ├── EntityMinecartHopper.java
│ │ │ ├── EntityMinecartTNT.java
│ │ │ ├── EntityPainting.java
│ │ │ ├── EntityTNTPrimed.java
│ │ │ └── EntityXPOrb.java
│ │ ├── monster
│ │ │ ├── EntityBlaze.java
│ │ │ ├── EntityCaveSpider.java
│ │ │ ├── EntityCreeper.java
│ │ │ ├── EntityEnderman.java
│ │ │ ├── EntityEndermite.java
│ │ │ ├── EntityGhast.java
│ │ │ ├── EntityGiantZombie.java
│ │ │ ├── EntityGuardian.java
│ │ │ ├── EntityIronGolem.java
│ │ │ ├── EntityMagmaCube.java
│ │ │ ├── EntityMob.java
│ │ │ ├── EntityPigZombie.java
│ │ │ ├── EntitySilverfish.java
│ │ │ ├── EntitySkeleton.java
│ │ │ ├── EntitySlime.java
│ │ │ ├── EntitySnowman.java
│ │ │ ├── EntitySpider.java
│ │ │ ├── EntityWitch.java
│ │ │ └── EntityZombie.java
│ │ ├── passive
│ │ │ ├── EntityAnimal.java
│ │ │ ├── EntityBat.java
│ │ │ ├── EntityChicken.java
│ │ │ ├── EntityCow.java
│ │ │ ├── EntityHorse.java
│ │ │ ├── EntityMooshroom.java
│ │ │ ├── EntityOcelot.java
│ │ │ ├── EntityPig.java
│ │ │ ├── EntityRabbit.java
│ │ │ ├── EntitySheep.java
│ │ │ ├── EntitySquid.java
│ │ │ ├── EntityVillager.java
│ │ │ └── EntityWolf.java
│ │ ├── player
│ │ │ ├── EntityPlayer.java
│ │ │ ├── EntityPlayerMP.java
│ │ │ ├── InventoryPlayer.java
│ │ │ └── PlayerCapabilities.java
│ │ └── projectile
│ │ │ ├── EntityArrow.java
│ │ │ ├── EntityEgg.java
│ │ │ ├── EntityFireball.java
│ │ │ ├── EntityLargeFireball.java
│ │ │ ├── EntityPotion.java
│ │ │ ├── EntitySmallFireball.java
│ │ │ ├── EntitySnowball.java
│ │ │ ├── EntityThrowable.java
│ │ │ └── EntityWitherSkull.java
│ │ ├── event
│ │ ├── ClickEvent.java
│ │ └── HoverEvent.java
│ │ ├── init
│ │ └── Bootstrap.java
│ │ ├── inventory
│ │ ├── Container.java
│ │ ├── ContainerBeacon.java
│ │ ├── ContainerBrewingStand.java
│ │ ├── ContainerChest.java
│ │ ├── ContainerDispenser.java
│ │ ├── ContainerEnchantment.java
│ │ ├── ContainerFurnace.java
│ │ ├── ContainerHopper.java
│ │ ├── ContainerHorseInventory.java
│ │ ├── ContainerMerchant.java
│ │ ├── ContainerPlayer.java
│ │ ├── ContainerRepair.java
│ │ ├── ContainerWorkbench.java
│ │ ├── IInventory.java
│ │ ├── InventoryBasic.java
│ │ ├── InventoryCraftResult.java
│ │ ├── InventoryCrafting.java
│ │ ├── InventoryEnderChest.java
│ │ ├── InventoryLargeChest.java
│ │ ├── InventoryMerchant.java
│ │ └── SlotMerchantResult.java
│ │ ├── item
│ │ ├── Item.java
│ │ ├── ItemBed.java
│ │ ├── ItemBlock.java
│ │ ├── ItemBucket.java
│ │ ├── ItemBucketMilk.java
│ │ ├── ItemDoor.java
│ │ ├── ItemFireball.java
│ │ ├── ItemFlintAndSteel.java
│ │ ├── ItemFood.java
│ │ ├── ItemHangingEntity.java
│ │ ├── ItemHoe.java
│ │ ├── ItemMap.java
│ │ ├── ItemMonsterPlacer.java
│ │ ├── ItemPotion.java
│ │ ├── ItemRecord.java
│ │ ├── ItemRedstone.java
│ │ ├── ItemReed.java
│ │ ├── ItemSeeds.java
│ │ ├── ItemSign.java
│ │ ├── ItemSkull.java
│ │ ├── ItemSlab.java
│ │ ├── ItemSoup.java
│ │ ├── ItemStack.java
│ │ └── crafting
│ │ │ ├── CraftingManager.java
│ │ │ ├── FurnaceRecipes.java
│ │ │ ├── ShapedRecipes.java
│ │ │ └── ShapelessRecipes.java
│ │ ├── nbt
│ │ ├── NBTTagByte.java
│ │ ├── NBTTagByteArray.java
│ │ ├── NBTTagCompound.java
│ │ ├── NBTTagDouble.java
│ │ ├── NBTTagFloat.java
│ │ ├── NBTTagInt.java
│ │ ├── NBTTagIntArray.java
│ │ ├── NBTTagList.java
│ │ ├── NBTTagLong.java
│ │ ├── NBTTagShort.java
│ │ └── NBTTagString.java
│ │ ├── network
│ │ ├── NetHandlerPlayServer.java
│ │ ├── NetworkManager.java
│ │ ├── handshake
│ │ │ └── client
│ │ │ │ └── C00Handshake.java
│ │ ├── play
│ │ │ └── server
│ │ │ │ ├── S23PacketBlockChange.java
│ │ │ │ ├── S2APacketParticles.java
│ │ │ │ ├── S38PacketPlayerListItem.java
│ │ │ │ ├── S3BPacketScoreboardObjective.java
│ │ │ │ ├── S3CPacketUpdateScore.java
│ │ │ │ └── S3DPacketDisplayScoreboard.java
│ │ └── rcon
│ │ │ └── RConThreadQuery.java
│ │ ├── pathfinding
│ │ └── PathNavigate.java
│ │ ├── potion
│ │ └── Potion.java
│ │ ├── scoreboard
│ │ ├── Score.java
│ │ ├── ScoreDummyCriteria.java
│ │ ├── ScoreHealthCriteria.java
│ │ ├── ScoreObjective.java
│ │ ├── ScorePlayerTeam.java
│ │ ├── Scoreboard.java
│ │ └── ServerScoreboard.java
│ │ ├── server
│ │ ├── MinecraftServer.java
│ │ ├── dedicated
│ │ │ ├── DedicatedPlayerList.java
│ │ │ └── DedicatedServer.java
│ │ ├── gui
│ │ │ ├── MinecraftServerGui.java
│ │ │ └── StatsComponent.java
│ │ ├── management
│ │ │ ├── ItemInWorldManager.java
│ │ │ ├── PlayerManager.java
│ │ │ └── ServerConfigurationManager.java
│ │ └── network
│ │ │ ├── NetHandlerHandshakeTCP.java
│ │ │ ├── NetHandlerLoginServer.java
│ │ │ └── NetHandlerStatusServer.java
│ │ ├── stats
│ │ ├── Achievement.java
│ │ ├── StatBase.java
│ │ └── StatisticsFile.java
│ │ ├── tileentity
│ │ ├── MobSpawnerBaseLogic.java
│ │ ├── TileEntity.java
│ │ ├── TileEntityBanner.java
│ │ ├── TileEntityBeacon.java
│ │ ├── TileEntityBrewingStand.java
│ │ ├── TileEntityChest.java
│ │ ├── TileEntityCommandBlock.java
│ │ ├── TileEntityComparator.java
│ │ ├── TileEntityDaylightDetector.java
│ │ ├── TileEntityDispenser.java
│ │ ├── TileEntityDropper.java
│ │ ├── TileEntityFurnace.java
│ │ ├── TileEntityHopper.java
│ │ ├── TileEntityMobSpawner.java
│ │ ├── TileEntityNote.java
│ │ ├── TileEntitySign.java
│ │ └── TileEntitySkull.java
│ │ ├── util
│ │ ├── ChatComponentStyle.java
│ │ ├── ChatComponentText.java
│ │ ├── ChatStyle.java
│ │ ├── DamageSource.java
│ │ ├── EntityDamageSource.java
│ │ ├── EnumChatFormatting.java
│ │ ├── EnumFacing.java
│ │ ├── FoodStats.java
│ │ └── IChatComponent.java
│ │ ├── village
│ │ ├── MerchantRecipe.java
│ │ └── Village.java
│ │ └── world
│ │ ├── Explosion.java
│ │ ├── World.java
│ │ ├── WorldProvider.java
│ │ ├── WorldServer.java
│ │ ├── WorldServerMulti.java
│ │ ├── biome
│ │ └── BiomeGenBase.java
│ │ ├── chunk
│ │ ├── Chunk.java
│ │ └── storage
│ │ │ ├── AnvilSaveConverter.java
│ │ │ └── AnvilSaveHandler.java
│ │ ├── gen
│ │ └── ChunkProviderServer.java
│ │ └── storage
│ │ ├── MapData.java
│ │ ├── SaveFormatOld.java
│ │ ├── SaveHandler.java
│ │ └── WorldInfo.java
└── resources
│ ├── assets
│ └── favicon.png
│ └── log4j2.xml
└── test
└── java
└── net
└── canarymod
├── CanaryModTest.java
└── api
└── world
└── blocks
└── properties
├── CanaryBlockEnumPropertyTest.java
└── helpers
└── BlockPropertiesTest.java
/src/main/assembly/default.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 | false
7 |
8 | tar.gz
9 | tar.bz2
10 | zip
11 |
12 |
13 |
14 | ${project.build.directory}/${artifactId}-${project.version}.jar
15 | CanaryMod.jar
16 | /
17 | false
18 |
19 |
20 |
21 |
22 | ${project.build.directory}/lib
23 | /lib
24 |
25 | *.jar
26 |
27 |
28 |
29 | ${project.basedir}
30 | /
31 |
32 | README*
33 | LICENSE*
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/src/main/java/com/mojang/authlib/yggdrasil/YggdrasilAuthenticationServiceModified.java:
--------------------------------------------------------------------------------
1 | package com.mojang.authlib.yggdrasil;
2 |
3 | import com.mojang.authlib.minecraft.MinecraftSessionService;
4 |
5 | import java.net.Proxy;
6 |
7 | /**
8 | * Modified YggdrasilAuthenticationService for disabling mismatched session ip
9 | */
10 | public class YggdrasilAuthenticationServiceModified extends YggdrasilAuthenticationService {
11 |
12 | public YggdrasilAuthenticationServiceModified(Proxy proxy, String clientToken) {
13 | super(proxy, clientToken);
14 | }
15 |
16 | //CanaryMod: Create the modified SessionService for Session IP verification
17 | public MinecraftSessionService createModifiedMinecraftSessionService() {
18 | return new YggdrasilMinecraftSessionServiceModified(this);
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/NativeTranslate.java:
--------------------------------------------------------------------------------
1 | package net.canarymod;
2 |
3 | import net.minecraft.util.StatCollector;
4 |
5 | /**
6 | * The Pot O' Gold
7 | *
8 | * @author Jason (darkdiplomat)
9 | */
10 | final class NativeTranslate extends NativeTranslateBridge {
11 |
12 | static {
13 | $ = new NativeTranslate();
14 | }
15 |
16 | static void initialize() {
17 | }
18 |
19 | @Override
20 | public String nativeTranslate(String key) {
21 | return StatCollector.a(key);
22 | }
23 |
24 | @Override
25 | public String nativeTranslate(String key, Object... args) {
26 | return StatCollector.a(key, args);
27 | }
28 |
29 | @Override
30 | public boolean nativeCanTranslate(String key) {
31 | return StatCollector.c(key);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/NotYetImplementedException.java:
--------------------------------------------------------------------------------
1 | package net.canarymod;
2 |
3 | /**
4 | * Not Yet Implemented
5 | *
6 | * @author Jason Jones (darkdiplomat)
7 | */
8 | public class NotYetImplementedException extends UnsupportedOperationException {
9 |
10 | public NotYetImplementedException() {
11 |
12 | }
13 |
14 | public NotYetImplementedException(String msg) {
15 | super(msg);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/CanaryDataWatcher.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api;
2 |
3 | public class CanaryDataWatcher implements DataWatcher {
4 |
5 | private net.minecraft.entity.DataWatcher dataWatcher;
6 |
7 | public CanaryDataWatcher(net.minecraft.entity.DataWatcher dw) {
8 | dataWatcher = dw;
9 | }
10 |
11 | @Override
12 | public void addObject(int index, Object object) {
13 | dataWatcher.a(index, object);
14 |
15 | }
16 |
17 | @Override
18 | public void updateObject(int index, Object object) {
19 | dataWatcher.b(index, object);
20 |
21 | }
22 |
23 | @Override
24 | public byte getByte(int index) {
25 | return dataWatcher.a(index);
26 | }
27 |
28 | @Override
29 | public short getShort(int index) {
30 | return dataWatcher.b(index);
31 | }
32 |
33 | @Override
34 | public int getInt(int index) {
35 | return dataWatcher.c(index);
36 | }
37 |
38 | @Override
39 | public String getString(int index) {
40 | return dataWatcher.e(index);
41 | }
42 |
43 | public net.minecraft.entity.DataWatcher getHandle() {
44 | return dataWatcher;
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/CanaryEntityTrackerEntry.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api;
2 |
3 | import net.canarymod.api.entity.Entity;
4 |
5 | public class CanaryEntityTrackerEntry implements EntityTrackerEntry {
6 | private net.minecraft.entity.EntityTrackerEntry entry;
7 |
8 | public CanaryEntityTrackerEntry(net.minecraft.entity.EntityTrackerEntry entry) {
9 | this.entry = entry;
10 | }
11 |
12 | @Override
13 | public Entity getEntity() {
14 | return entry.a.getCanaryEntity();
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/CanaryPathFinder.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api;
2 |
3 | import net.canarymod.api.entity.Entity;
4 | import net.canarymod.api.world.World;
5 | import net.canarymod.api.world.blocks.Block;
6 | import net.canarymod.api.world.position.Location;
7 | import net.minecraft.pathfinding.PathNavigate;
8 |
9 | /**
10 | * @author Somners
11 | */
12 | public class CanaryPathFinder implements PathFinder {
13 |
14 | private PathNavigate nav = null;
15 |
16 | public CanaryPathFinder(PathNavigate nav) {
17 | this.nav = nav;
18 | }
19 |
20 | /**
21 | * {@inheritDoc}
22 | */
23 | @Override
24 | public boolean setPathToXYZ(double x, double y, double z, World world) {
25 | return nav.a(x, y, z, nav.e);
26 | }
27 |
28 | /**
29 | * {@inheritDoc}
30 | */
31 | @Override
32 | public boolean setPathToLocation(Location location) {
33 | return nav.a(location.getX(), location.getY(), location.getZ(), nav.e);
34 | }
35 |
36 | /**
37 | * {@inheritDoc}
38 | */
39 | @Override
40 | public boolean setPathToEntity(Entity entity) {
41 | return nav.a(entity.getX(), entity.getY(), entity.getZ(), nav.e);
42 | }
43 |
44 | /**
45 | * {@inheritDoc}
46 | */
47 | @Override
48 | public boolean setPathToBlock(Block block) {
49 | return nav.a(block.getX(), block.getY(), block.getZ(), nav.e);
50 | }
51 |
52 | /**
53 | * {@inheritDoc}
54 | */
55 | @Override
56 | public void setSpeed(float speed) {
57 | nav.a(speed);
58 | }
59 |
60 | /**
61 | * {@inheritDoc}
62 | */
63 | @Override
64 | public void setPathSearchRange(float range) {
65 | // nav.e = range; // Unable to set Range at this time...
66 | }
67 |
68 | }
69 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIArrowAttack.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIArrowAttack;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIArrowAttack extends CanaryAIBase implements AIArrowAttack {
9 |
10 | public CanaryAIArrowAttack(EntityAIArrowAttack ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIArrowAttack getHandle() {
16 | return (EntityAIArrowAttack) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIAttackOnCollide.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIAttackOnCollide;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIAttackOnCollide extends CanaryAIBase implements AIAttackOnCollide {
9 |
10 | public CanaryAIAttackOnCollide(EntityAIAttackOnCollide ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIAttackOnCollide getHandle() {
16 | return (EntityAIAttackOnCollide) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIAvoidEntity.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIAvoidEntity;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIAvoidEntity extends CanaryAIBase implements AIAvoidEntity {
9 |
10 | public CanaryAIAvoidEntity(EntityAIAvoidEntity ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIAvoidEntity getHandle() {
16 | return (EntityAIAvoidEntity) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIBase.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIBase;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public abstract class CanaryAIBase implements AIBase {
9 |
10 | protected EntityAIBase handle;
11 |
12 | public CanaryAIBase(EntityAIBase ai) {
13 | this.handle = ai;
14 | }
15 |
16 | @Override
17 | public boolean shouldExecute() {
18 | return this.handle.a();
19 | }
20 |
21 | @Override
22 | public boolean continueExecuting() {
23 | return this.handle.b();
24 | }
25 |
26 | @Override
27 | public boolean isContinuous() {
28 | return this.handle.i();
29 | }
30 |
31 | @Override
32 | public void startExecuting() {
33 | this.handle.c();
34 | }
35 |
36 | @Override
37 | public void resetTask() {
38 | this.handle.d();
39 | }
40 |
41 | @Override
42 | public void updateTask() {
43 | this.handle.e();
44 | }
45 |
46 | public abstract EntityAIBase getHandle();
47 | }
48 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIBeg.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIBeg;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIBeg extends CanaryAIBase implements AIBeg {
9 |
10 | public CanaryAIBeg(EntityAIBeg ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIBeg getHandle() {
16 | return (EntityAIBeg) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIBreakDoor.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIBreakDoor;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIBreakDoor extends CanaryAIBase implements AIBreakDoor {
9 |
10 | public CanaryAIBreakDoor(EntityAIBreakDoor ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIBreakDoor getHandle() {
16 | return (EntityAIBreakDoor) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIControlledByPlayer.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIControlledByPlayer;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIControlledByPlayer extends CanaryAIBase implements AIControlledByPlayer {
9 |
10 | public CanaryAIControlledByPlayer(EntityAIControlledByPlayer ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIControlledByPlayer getHandle() {
16 | return (EntityAIControlledByPlayer) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAICreeperSwell.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAICreeperSwell;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAICreeperSwell extends CanaryAIBase implements AICreeperSwell {
9 |
10 | public CanaryAICreeperSwell(EntityAICreeperSwell ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAICreeperSwell getHandle() {
16 | return (EntityAICreeperSwell) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIDefendVillage.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIDefendVillage;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIDefendVillage extends CanaryAIBase implements AIDefendVillage {
9 |
10 | public CanaryAIDefendVillage(EntityAIDefendVillage ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIDefendVillage getHandle() {
16 | return (EntityAIDefendVillage) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIDoorInteract.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIDoorInteract;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIDoorInteract extends CanaryAIBase implements AIDoorInteract {
9 |
10 | public CanaryAIDoorInteract(EntityAIDoorInteract ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIDoorInteract getHandle() {
16 | return (EntityAIDoorInteract) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIEatGrass.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIEatGrass;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIEatGrass extends CanaryAIBase implements AIEatGrass {
9 |
10 | public CanaryAIEatGrass(EntityAIEatGrass ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIEatGrass getHandle() {
16 | return (EntityAIEatGrass) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIFindEntityNearest.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIFindEntityNearest;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIFindEntityNearest extends CanaryAIBase implements AIFindEntityNearest {
9 |
10 | public CanaryAIFindEntityNearest(EntityAIFindEntityNearest ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIFindEntityNearest getHandle() {
16 | return (EntityAIFindEntityNearest) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIFindEntityNearestPlayer.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIFindEntityNearestPlayer;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIFindEntityNearestPlayer extends CanaryAIBase implements AIFindEntityNearestPlayer {
9 |
10 | public CanaryAIFindEntityNearestPlayer(EntityAIFindEntityNearestPlayer ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIFindEntityNearestPlayer getHandle() {
16 | return (EntityAIFindEntityNearestPlayer) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIFleeSun.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIFleeSun;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIFleeSun extends CanaryAIBase implements AIFleeSun {
9 |
10 | public CanaryAIFleeSun(EntityAIFleeSun ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIFleeSun getHandle() {
16 | return (EntityAIFleeSun) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIFollowGolem.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIFollowGolem;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIFollowGolem extends CanaryAIBase implements AIFollowGolem {
9 |
10 | public CanaryAIFollowGolem(EntityAIFollowGolem ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIFollowGolem getHandle() {
16 | return (EntityAIFollowGolem) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIFollowOwner.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIFollowOwner;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIFollowOwner extends CanaryAIBase implements AIFollowOwner {
9 |
10 | public CanaryAIFollowOwner(EntityAIFollowOwner ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIFollowOwner getHandle() {
16 | return (EntityAIFollowOwner) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIFollowParent.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIFollowParent;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIFollowParent extends CanaryAIBase implements AIFollowParent {
9 |
10 | public CanaryAIFollowParent(EntityAIFollowParent ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIFollowParent getHandle() {
16 | return (EntityAIFollowParent) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIHarvestFarmland.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIHarvestFarmland;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIHarvestFarmland extends CanaryAIBase implements AIHarvestFarmland {
9 |
10 | public CanaryAIHarvestFarmland(EntityAIHarvestFarmland ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIHarvestFarmland getHandle() {
16 | return (EntityAIHarvestFarmland) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIHurtByTarget.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIHurtByTarget;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIHurtByTarget extends CanaryAIBase implements AIHurtByTarget {
9 |
10 | public CanaryAIHurtByTarget(EntityAIHurtByTarget ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIHurtByTarget getHandle() {
16 | return (EntityAIHurtByTarget) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAILeapAtTarget.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAILeapAtTarget;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAILeapAtTarget extends CanaryAIBase implements AILeapAtTarget {
9 |
10 | public CanaryAILeapAtTarget(EntityAILeapAtTarget ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAILeapAtTarget getHandle() {
16 | return (EntityAILeapAtTarget) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAILookAtTradePlayer.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAILookAtTradePlayer;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAILookAtTradePlayer extends CanaryAIBase implements AILookAtTradePlayer {
9 |
10 | public CanaryAILookAtTradePlayer(EntityAILookAtTradePlayer ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAILookAtTradePlayer getHandle() {
16 | return (EntityAILookAtTradePlayer) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAILookAtVillager.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAILookAtVillager;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAILookAtVillager extends CanaryAIBase implements AILookAtVillager {
9 |
10 | public CanaryAILookAtVillager(EntityAILookAtVillager ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAILookAtVillager getHandle() {
16 | return (EntityAILookAtVillager) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAILookIdle.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAILookIdle;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAILookIdle extends CanaryAIBase implements AILookIdle {
9 |
10 | public CanaryAILookIdle(EntityAILookIdle ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAILookIdle getHandle() {
16 | return (EntityAILookIdle) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIMate.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIMate;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIMate extends CanaryAIBase implements AIMate {
9 |
10 | public CanaryAIMate(EntityAIMate ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIMate getHandle() {
16 | return (EntityAIMate) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIMoveIndoors.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIMoveIndoors;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIMoveIndoors extends CanaryAIBase implements AIMoveIndoors {
9 |
10 | public CanaryAIMoveIndoors(EntityAIMoveIndoors ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIMoveIndoors getHandle() {
16 | return (EntityAIMoveIndoors) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIMoveThroughVillage.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIMoveThroughVillage;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIMoveThroughVillage extends CanaryAIBase implements AIMoveThroughVillage {
9 |
10 | public CanaryAIMoveThroughVillage(EntityAIMoveThroughVillage ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIMoveThroughVillage getHandle() {
16 | return (EntityAIMoveThroughVillage) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIMoveToBlock.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIMoveToBlock;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIMoveToBlock extends CanaryAIBase implements AIMoveToBlock {
9 |
10 | public CanaryAIMoveToBlock(EntityAIMoveToBlock ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIMoveToBlock getHandle() {
16 | return (EntityAIMoveToBlock) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIMoveTowardsRestriction.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIMoveTowardsRestriction;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIMoveTowardsRestriction extends CanaryAIBase implements AIMoveTowardsRestriction {
9 |
10 | public CanaryAIMoveTowardsRestriction(EntityAIMoveTowardsRestriction ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIMoveTowardsRestriction getHandle() {
16 | return (EntityAIMoveTowardsRestriction) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIMoveTowardsTarget.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIMoveTowardsTarget;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIMoveTowardsTarget extends CanaryAIBase implements AIMoveTowardsTarget {
9 |
10 | public CanaryAIMoveTowardsTarget(EntityAIMoveTowardsTarget ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIMoveTowardsTarget getHandle() {
16 | return (EntityAIMoveTowardsTarget) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAINearestAttackableTarget.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAINearestAttackableTarget;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAINearestAttackableTarget extends CanaryAIBase implements AINearestAttackableTarget {
9 |
10 | public CanaryAINearestAttackableTarget(EntityAINearestAttackableTarget ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAINearestAttackableTarget getHandle() {
16 | return (EntityAINearestAttackableTarget) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIOcelotAttack.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIOcelotAttack;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIOcelotAttack extends CanaryAIBase implements AIOcelotAttack {
9 |
10 | public CanaryAIOcelotAttack(EntityAIOcelotAttack ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIOcelotAttack getHandle() {
16 | return (EntityAIOcelotAttack) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIOcelotSit.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIOcelotSit;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIOcelotSit extends CanaryAIBase implements AIOcelotSit {
9 |
10 | public CanaryAIOcelotSit(EntityAIOcelotSit ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIOcelotSit getHandle() {
16 | return (EntityAIOcelotSit) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIOpenDoor.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIOpenDoor;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIOpenDoor extends CanaryAIBase implements AIOpenDoor {
9 |
10 | public CanaryAIOpenDoor(EntityAIOpenDoor ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIOpenDoor getHandle() {
16 | return (EntityAIOpenDoor) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIOwnerHurtByTarget.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIOwnerHurtByTarget;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIOwnerHurtByTarget extends CanaryAIBase implements AIOwnerHurtByTarget {
9 |
10 | public CanaryAIOwnerHurtByTarget(EntityAIOwnerHurtByTarget ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIOwnerHurtByTarget getHandle() {
16 | return (EntityAIOwnerHurtByTarget) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIOwnerHurtTarget.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIOwnerHurtTarget;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIOwnerHurtTarget extends CanaryAIBase implements AIOwnerHurtTarget {
9 |
10 | public CanaryAIOwnerHurtTarget(EntityAIOwnerHurtTarget ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIOwnerHurtTarget getHandle() {
16 | return (EntityAIOwnerHurtTarget) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIPanic.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIPanic;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIPanic extends CanaryAIBase implements AIPanic {
9 |
10 | public CanaryAIPanic(EntityAIPanic ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIPanic getHandle() {
16 | return (EntityAIPanic) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIPlay.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIPlay;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIPlay extends CanaryAIBase implements AIPlay {
9 |
10 | public CanaryAIPlay(EntityAIPlay ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIPlay getHandle() {
16 | return (EntityAIPlay) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIRestrictOpenDoor.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIRestrictOpenDoor;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIRestrictOpenDoor extends CanaryAIBase implements AIRestrictOpenDoor {
9 |
10 | public CanaryAIRestrictOpenDoor(EntityAIRestrictOpenDoor ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIRestrictOpenDoor getHandle() {
16 | return (EntityAIRestrictOpenDoor) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIRestrictSun.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIRestrictSun;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIRestrictSun extends CanaryAIBase implements AIRestrictSun {
9 |
10 | public CanaryAIRestrictSun(EntityAIRestrictSun ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIRestrictSun getHandle() {
16 | return (EntityAIRestrictSun) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIRunAroundLikeCrazy.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIRunAroundLikeCrazy;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIRunAroundLikeCrazy extends CanaryAIBase implements AIRunAroundLikeCrazy {
9 |
10 | public CanaryAIRunAroundLikeCrazy(EntityAIRunAroundLikeCrazy ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIRunAroundLikeCrazy getHandle() {
16 | return (EntityAIRunAroundLikeCrazy) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAISit.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAISit;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAISit extends CanaryAIBase implements AISit {
9 |
10 | public CanaryAISit(EntityAISit ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAISit getHandle() {
16 | return (EntityAISit) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAISwimming.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAISwimming;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAISwimming extends CanaryAIBase implements AISwimming {
9 |
10 | public CanaryAISwimming(EntityAISwimming ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAISwimming getHandle() {
16 | return (EntityAISwimming) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAITarget.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAITarget;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAITarget extends CanaryAIBase implements AITarget {
9 |
10 | public CanaryAITarget(EntityAITarget ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAITarget getHandle() {
16 | return (EntityAITarget) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAITargetNonTamed.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAITargetNonTamed;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAITargetNonTamed extends CanaryAIBase implements AITargetNonTamed {
9 |
10 | public CanaryAITargetNonTamed(EntityAITargetNonTamed ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAITargetNonTamed getHandle() {
16 | return (EntityAITargetNonTamed) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAITempt.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAITempt;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAITempt extends CanaryAIBase implements AITempt {
9 |
10 | public CanaryAITempt(EntityAITempt ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAITempt getHandle() {
16 | return (EntityAITempt) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAITradePlayer.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAITradePlayer;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAITradePlayer extends CanaryAIBase implements AITradePlayer {
9 |
10 | public CanaryAITradePlayer(EntityAITradePlayer ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAITradePlayer getHandle() {
16 | return (EntityAITradePlayer) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIVillagerInteract.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIVillagerInteract;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIVillagerInteract extends CanaryAIBase implements AIVillagerInteract {
9 |
10 | public CanaryAIVillagerInteract(EntityAIVillagerInteract ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIVillagerInteract getHandle() {
16 | return (EntityAIVillagerInteract) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIVillagerMate.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIVillagerMate;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIVillagerMate extends CanaryAIBase implements AIVillagerMate {
9 |
10 | public CanaryAIVillagerMate(EntityAIVillagerMate ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIVillagerMate getHandle() {
16 | return (EntityAIVillagerMate) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIWander.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIWander;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIWander extends CanaryAIBase implements AIWander {
9 |
10 | public CanaryAIWander(EntityAIWander ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIWander getHandle() {
16 | return (EntityAIWander) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIWatchClosest.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIWatchClosest;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIWatchClosest extends CanaryAIBase implements AIWatchClosest {
9 |
10 | public CanaryAIWatchClosest(EntityAIWatchClosest ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIWatchClosest getHandle() {
16 | return (EntityAIWatchClosest) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/ai/CanaryAIWatchClosest2.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.ai;
2 |
3 | import net.minecraft.entity.ai.EntityAIWatchClosest2;
4 |
5 | /**
6 | * @author Aaron
7 | */
8 | public class CanaryAIWatchClosest2 extends CanaryAIBase implements AIWatchClosest2 {
9 |
10 | public CanaryAIWatchClosest2(EntityAIWatchClosest2 ai) {
11 | super(ai);
12 |
13 | }
14 |
15 | public EntityAIWatchClosest2 getHandle() {
16 | return (EntityAIWatchClosest2) handle;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/attributes/CanaryAttribute.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.attributes;
2 |
3 | import net.minecraft.entity.ai.attributes.BaseAttribute;
4 |
5 | /**
6 | * @author Jason (darkdiplomat)
7 | */
8 | public class CanaryAttribute implements Attribute {
9 | private final BaseAttribute attribute;
10 |
11 | public CanaryAttribute(BaseAttribute attribute) {
12 | this.attribute = attribute;
13 | }
14 |
15 | @Override
16 | public String getInternalName() {
17 | return getNative().a();
18 | }
19 |
20 | @Override
21 | public double getDefaultValue() {
22 | return getNative().b();
23 | }
24 |
25 | @Override
26 | public boolean shouldWatch() {
27 | return getNative().c();
28 | }
29 |
30 | @Override
31 | public Attribute setShouldWatch(boolean watch) {
32 | getNative().a(watch);
33 | return this;
34 | }
35 |
36 | public BaseAttribute getNative() {
37 | return attribute;
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/attributes/CanaryModifiedAttribute.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.attributes;
2 |
3 | import net.minecraft.entity.ai.attributes.ModifiableAttributeInstance;
4 |
5 | import java.util.UUID;
6 |
7 | /**
8 | * @author Jason (darkdiplomat)
9 | */
10 | public class CanaryModifiedAttribute implements ModifiedAttribute {
11 | private final ModifiableAttributeInstance modAttribute;
12 |
13 | public CanaryModifiedAttribute(ModifiableAttributeInstance modAttribute) {
14 | this.modAttribute = modAttribute;
15 | }
16 |
17 | @Override
18 | public Attribute getAttribute() {
19 | return getNative().a().getWrapper();
20 | }
21 |
22 | @Override
23 | public double getBaseValue() {
24 | return 0;
25 | }
26 |
27 | @Override
28 | public void setBaseValue(double v) {
29 |
30 | }
31 |
32 | @Override
33 | public AttributeModifier getModifier(UUID uuid) {
34 | return getNative().a(uuid).getWrapper();
35 | }
36 |
37 | @Override
38 | public void apply(AttributeModifier attributeModifier) {
39 | getNative().a(((CanaryAttributeModifier) attributeModifier).getNative());
40 | }
41 |
42 | @Override
43 | public void remove(AttributeModifier attributeModifier) {
44 |
45 | }
46 |
47 | @Override
48 | public double getValue() {
49 | return 0;
50 | }
51 |
52 | public ModifiableAttributeInstance getNative() {
53 | return modAttribute;
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/attributes/CanaryRangedAttribute.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.attributes;
2 |
3 | /**
4 | * @author Jason (darkdiplomat)
5 | */
6 | public class CanaryRangedAttribute extends CanaryAttribute implements RangedAttribute {
7 |
8 | public CanaryRangedAttribute(net.minecraft.entity.ai.attributes.RangedAttribute rangedAttribute) {
9 | super(rangedAttribute);
10 | }
11 |
12 | @Override
13 | public RangedAttribute setDescription(String description) {
14 | return (RangedAttribute)getNative().a(description).getWrapper();
15 | }
16 |
17 | @Override
18 | public String getDescription() {
19 | return getNative().g();
20 | }
21 |
22 | @Override
23 | public double setValue(double value) {
24 | return getNative().a(value);
25 | }
26 |
27 | @Override
28 | public double getMaxValue() {
29 | return getNative().getMaxValue();
30 | }
31 |
32 | @Override
33 | public double getMinValue() {
34 | return getNative().getMinValue();
35 | }
36 |
37 | public net.minecraft.entity.ai.attributes.RangedAttribute getNative() {
38 | return (net.minecraft.entity.ai.attributes.RangedAttribute)super.getNative();
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/chat/CanaryChatFormatting.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.chat;
2 |
3 | import net.minecraft.util.EnumChatFormatting;
4 |
5 | /**
6 | * Wrapper implementation for EnumChatFormatting
7 | *
8 | * @author Jason (darkdiplomat)
9 | */
10 | public final class CanaryChatFormatting implements ChatFormatting {
11 | private EnumChatFormatting nmsFormat;
12 |
13 | public CanaryChatFormatting(EnumChatFormatting nmsFormat) {
14 | this.nmsFormat = nmsFormat;
15 | }
16 |
17 | /**
18 | * {@inheritDoc}
19 | */
20 | @Override
21 | public char getFormattingCode() {
22 | return getNative().z;
23 | }
24 |
25 | /**
26 | * {@inheritDoc}
27 | */
28 | @Override
29 | public boolean isFormat() {
30 | return getNative().c();
31 | }
32 |
33 | /**
34 | * {@inheritDoc}
35 | */
36 | @Override
37 | public boolean isColor() {
38 | return getNative().d();
39 | }
40 |
41 | /**
42 | * {@inheritDoc}
43 | */
44 | @Override
45 | public String getName() {
46 | return getNative().e();
47 | }
48 |
49 | /**
50 | * {@inheritDoc}
51 | */
52 | @Override
53 | public String toString() {
54 | return getNative().toString();
55 | }
56 |
57 | public EnumChatFormatting getNative() {
58 | return nmsFormat;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/chat/CanaryClickEvent.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.chat;
2 |
3 | /**
4 | * Wrapper implementation for Minecraft native ClickEvent
5 | *
6 | * @author Jason (darkdiplomat)
7 | */
8 | public class CanaryClickEvent implements ClickEvent {
9 | private final net.minecraft.event.ClickEvent nmsClickEvent;
10 |
11 | public CanaryClickEvent(net.minecraft.event.ClickEvent nmsClickEvent) {
12 | this.nmsClickEvent = nmsClickEvent;
13 | }
14 |
15 | /**
16 | * {@inheritDoc}
17 | */
18 | @Override
19 | public ClickEventAction getAction() {
20 | return getNative().a().getWrapper();
21 | }
22 |
23 | /**
24 | * {@inheritDoc}
25 | */
26 | @Override
27 | public String getValue() {
28 | return getNative().b();
29 | }
30 |
31 | public final net.minecraft.event.ClickEvent getNative() {
32 | return nmsClickEvent;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/chat/CanaryClickEventAction.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.chat;
2 |
3 | import net.minecraft.event.ClickEvent;
4 |
5 | /**
6 | * Wrapper implementation for Minecraft native ClickEvent.Action
7 | *
8 | * @author Jason (darkdiplomat)
9 | */
10 | public final class CanaryClickEventAction implements ClickEventAction {
11 | private final ClickEvent.Action nmsCEA;
12 |
13 | public CanaryClickEventAction(ClickEvent.Action nmsCEA) {
14 | this.nmsCEA = nmsCEA;
15 | }
16 |
17 | /**
18 | * {@inheritDoc}
19 | */
20 | @Override
21 | public boolean allowedInChat() {
22 | return getNative().a();
23 | }
24 |
25 | /**
26 | * {@inheritDoc}
27 | */
28 | @Override
29 | public String getName() {
30 | return getNative().b();
31 | }
32 |
33 | public final ClickEvent.Action getNative() {
34 | return nmsCEA;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/chat/CanaryHoverEvent.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.chat;
2 |
3 | /**
4 | * Wrapper implementation for Minecraft native HoverEvent
5 | *
6 | * @author Jason (darkdiplomat)
7 | */
8 | public class CanaryHoverEvent implements HoverEvent {
9 | private final net.minecraft.event.HoverEvent nmsHoverEvent;
10 |
11 | public CanaryHoverEvent(net.minecraft.event.HoverEvent nmsHoverEvent) {
12 | this.nmsHoverEvent = nmsHoverEvent;
13 | }
14 |
15 | /**
16 | * {@inheritDoc}
17 | */
18 | @Override
19 | public HoverEventAction getAction() {
20 | return getNative().a().getWrapper();
21 | }
22 |
23 | /**
24 | * {@inheritDoc}
25 | */
26 | @Override
27 | public ChatComponent getValue() {
28 | return getNative().b().getWrapper();
29 | }
30 |
31 | public final net.minecraft.event.HoverEvent getNative() {
32 | return nmsHoverEvent;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/chat/CanaryHoverEventAction.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.chat;
2 |
3 | import net.minecraft.event.HoverEvent;
4 |
5 | /**
6 | * Wrapper implementation for Minecraft native HoverEvent.Action
7 | *
8 | * @author Jason (darkdiplomat)
9 | */
10 | public final class CanaryHoverEventAction implements HoverEventAction {
11 | private final HoverEvent.Action nmsHEA;
12 |
13 | public CanaryHoverEventAction(HoverEvent.Action nmsHEA) {
14 | this.nmsHEA = nmsHEA;
15 | }
16 |
17 | /**
18 | * {@inheritDoc}
19 | */
20 | @Override
21 | public boolean allowedInChat() {
22 | return getNative().a();
23 | }
24 |
25 | /**
26 | * {@inheritDoc}
27 | */
28 | @Override
29 | public String getName() {
30 | return getNative().b();
31 | }
32 |
33 | public final HoverEvent.Action getNative() {
34 | return nmsHEA;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/CanaryProjectile.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity;
2 |
3 | import net.minecraft.entity.IProjectile;
4 |
5 | /**
6 | * Projectile wrapper implementation
7 | *
8 | * @author Jason (darkdiplomat)
9 | */
10 | public abstract class CanaryProjectile extends CanaryEntity implements Projectile {
11 |
12 | public CanaryProjectile(IProjectile projectile) {
13 | super((net.minecraft.entity.Entity) projectile);
14 | }
15 |
16 | /**
17 | * {@inheritDoc}
18 | */
19 | @Override
20 | public void setProjectileHeading(double motionX, double motionY, double motionZ, float rotationYaw, float rotationPitch) {
21 | ((IProjectile) getHandle()).c(motionX, motionY, motionZ, rotationYaw, rotationPitch);
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/CanarySmallFireball.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity;
2 |
3 | import net.minecraft.entity.projectile.EntitySmallFireball;
4 |
5 | /**
6 | * SmallFireball wrapper implementation
7 | *
8 | * @author Jason (darkdiplomat)
9 | */
10 | public class CanarySmallFireball extends CanaryFireball implements SmallFireball {
11 |
12 | /**
13 | * Constructs a new wrapper for EntitySmallFireball
14 | *
15 | * @param entity
16 | * the EntitySmallFireball to wrap
17 | */
18 | public CanarySmallFireball(EntitySmallFireball entity) {
19 | super(entity);
20 | }
21 |
22 | /**
23 | * {@inheritDoc}
24 | */
25 | @Override
26 | public EntityType getEntityType() {
27 | return EntityType.SMALLFIREBALL;
28 | }
29 |
30 | @Override
31 | public String getFqName() {
32 | return "SmallFireball";
33 | }
34 |
35 | /**
36 | * {@inheritDoc}
37 | */
38 | @Override
39 | public EntitySmallFireball getHandle() {
40 | return (EntitySmallFireball) entity;
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/effect/CanaryWeatherEffect.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.effect;
2 |
3 | import net.canarymod.api.entity.CanaryEntity;
4 | import net.minecraft.entity.effect.EntityWeatherEffect;
5 |
6 | /**
7 | * @author Jason (darkdiplomat)
8 | */
9 | public abstract class CanaryWeatherEffect extends CanaryEntity implements WeatherEffect {
10 |
11 | public CanaryWeatherEffect(EntityWeatherEffect entity) {
12 | super(entity);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/hanging/CanaryLeashKnot.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.hanging;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.EntityLeashKnot;
5 |
6 | import static net.canarymod.api.entity.EntityType.LEASHKNOT;
7 |
8 | /**
9 | * LeashKnot wrapper implementation
10 | *
11 | * @author Jason (darkdiplomat)
12 | */
13 | public class CanaryLeashKnot extends CanaryHangingEntity implements LeashKnot {
14 |
15 | public CanaryLeashKnot(EntityLeashKnot entity) {
16 | super(entity);
17 | }
18 |
19 | /**
20 | * {@inheritDoc}
21 | */
22 | @Override
23 | public EntityType getEntityType() {
24 | return LEASHKNOT;
25 | }
26 |
27 | @Override
28 | public String getFqName() {
29 | return "LeashKnot";
30 | }
31 |
32 | /**
33 | * {@inheritDoc}
34 | */
35 | @Override
36 | public EntityLeashKnot getHandle() {
37 | return (EntityLeashKnot) entity;
38 | }
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/CanarySnowman.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.monster.EntitySnowman;
5 |
6 | /**
7 | * Snowman wrapper implementation
8 | *
9 | * @author Jason (darkdiplomat)
10 | */
11 | public class CanarySnowman extends CanaryEntityLiving implements Snowman {
12 |
13 | /**
14 | * Constructs a new wrapper for EntitySnowman
15 | *
16 | * @param entity
17 | * the EntitySnowman to be wrapped
18 | */
19 | public CanarySnowman(EntitySnowman entity) {
20 | super(entity);
21 | }
22 |
23 | @Override
24 | public boolean isGolem() {
25 | return true;
26 | }
27 |
28 | /**
29 | * {@inheritDoc}
30 | */
31 | @Override
32 | public EntityType getEntityType() {
33 | return EntityType.SNOWMAN;
34 | }
35 |
36 | @Override
37 | public String getFqName() {
38 | return "Snowman";
39 | }
40 |
41 | /**
42 | * {@inheritDoc}
43 | */
44 | @Override
45 | public EntitySnowman getHandle() {
46 | return (EntitySnowman) entity;
47 | }
48 |
49 | }
50 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/animal/CanaryAgeableAnimal.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living.animal;
2 |
3 | import net.canarymod.api.entity.living.Ageable;
4 |
5 | /**
6 | * Covers the age methods
7 | *
8 | * @author Jason (darkdiplomat)
9 | */
10 | public abstract class CanaryAgeableAnimal extends CanaryAnimal implements Ageable {
11 |
12 | public CanaryAgeableAnimal(net.minecraft.entity.passive.EntityAnimal entity) {
13 | super(entity);
14 | }
15 |
16 | /**
17 | * {@inheritDoc}
18 | */
19 | @Override
20 | public int getGrowingAge() {
21 | return getHandle().l();
22 | }
23 |
24 | /**
25 | * {@inheritDoc}
26 | */
27 | @Override
28 | public void setGrowingAge(int age) {
29 | getHandle().b(age);
30 | }
31 |
32 | @Override
33 | public net.minecraft.entity.passive.EntityAnimal getHandle() {
34 | return (net.minecraft.entity.passive.EntityAnimal) entity;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/animal/CanaryAnimal.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living.animal;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.canarymod.api.entity.living.CanaryEntityLiving;
5 | import net.canarymod.api.inventory.CanaryItem;
6 | import net.canarymod.api.inventory.Item;
7 |
8 | /**
9 | * Animal wrapper implementation
10 | *
11 | * @author Jason (darkdiplomat)
12 | */
13 | public abstract class CanaryAnimal extends CanaryEntityLiving implements EntityAnimal {
14 |
15 | public CanaryAnimal(net.minecraft.entity.passive.EntityAnimal entity) {
16 | super(entity);
17 | }
18 |
19 | // For them squids ...
20 | public CanaryAnimal(net.minecraft.entity.passive.EntitySquid entity) {
21 | super(entity);
22 | }
23 |
24 | // For them Bats...
25 | public CanaryAnimal(net.minecraft.entity.passive.EntityAmbientCreature entity) {
26 | super(entity);
27 | }
28 |
29 | @Override
30 | public boolean isAnimal() {
31 | return true;
32 | }
33 |
34 | /**
35 | * {@inheritDoc}
36 | */
37 | @Override
38 | public boolean isBreedingItem(Item item) {
39 | if (this.getEntityType() == EntityType.BAT || this.getEntityType() == EntityType.SQUID || item == null) {
40 | return false;
41 | }
42 | return getAnimalHandle().d(((CanaryItem) item).getHandle());
43 | }
44 |
45 | private net.minecraft.entity.passive.EntityAnimal getAnimalHandle() {
46 | return (net.minecraft.entity.passive.EntityAnimal) entity;
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/animal/CanaryBat.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living.animal;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.canarymod.api.entity.living.AmbientCreature;
5 | import net.minecraft.entity.passive.EntityBat;
6 |
7 | import static net.canarymod.api.entity.EntityType.BAT;
8 |
9 | /**
10 | * Bat wrapper implementation
11 | *
12 | * @author Jason (darkdiplomat)
13 | */
14 | public class CanaryBat extends CanaryAnimal implements Bat, AmbientCreature {
15 |
16 | /**
17 | * Constructs a new wrapper for EntityBat
18 | *
19 | * @param entity
20 | * the EntityBat to be wrapped
21 | */
22 | public CanaryBat(EntityBat entity) {
23 | super(entity);
24 | }
25 |
26 | /**
27 | * {@inheritDoc}
28 | */
29 | @Override
30 | public EntityType getEntityType() {
31 | return BAT;
32 | }
33 |
34 | @Override
35 | public String getFqName() {
36 | return "Bat";
37 | }
38 |
39 | /**
40 | * {@inheritDoc}
41 | */
42 | @Override
43 | public boolean isHanging() {
44 | return getHandle().cb();
45 | }
46 |
47 | /**
48 | * {@inheritDoc}
49 | */
50 | @Override
51 | public void setHanging(boolean hanging) {
52 | getHandle().a(hanging);
53 | }
54 |
55 | /**
56 | * {@inheritDoc}
57 | */
58 | @Override
59 | public EntityBat getHandle() {
60 | return (EntityBat) entity;
61 | }
62 |
63 | /**
64 | * {@inheritDoc}
65 | */
66 | @Override
67 | public boolean isAmbient() {
68 | return true;
69 | }
70 |
71 | }
72 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/animal/CanaryChicken.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living.animal;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.passive.EntityChicken;
5 |
6 | import static net.canarymod.api.entity.EntityType.CHICKEN;
7 |
8 | /**
9 | * Chicken wrapper implementation
10 | *
11 | * @author Chris (damagefilter)
12 | * @author Jason (darkdiplomat)
13 | */
14 | public class CanaryChicken extends CanaryAgeableAnimal implements Chicken {
15 |
16 | /**
17 | * Constructs a new wrapper for EntityChicken
18 | *
19 | * @param entity
20 | * the EntityChicken to be wrapped
21 | */
22 | public CanaryChicken(EntityChicken entity) {
23 | super(entity);
24 | }
25 |
26 | /**
27 | * {@inheritDoc}
28 | */
29 | @Override
30 | public EntityType getEntityType() {
31 | return CHICKEN;
32 | }
33 |
34 | @Override
35 | public String getFqName() {
36 | return "Chicken";
37 | }
38 |
39 | public int getTimeUntilNextEgg() {
40 | return getHandle().bq;
41 | }
42 |
43 | /**
44 | * {@inheritDoc}
45 | */
46 | @Override
47 | public void setTimeUntilNextEgg(int timeTicks) {
48 | getHandle().bq = timeTicks;
49 | }
50 |
51 | /**
52 | * {@inheritDoc}
53 | */
54 | @Override
55 | public EntityChicken getHandle() {
56 | return (EntityChicken) entity;
57 | }
58 |
59 | }
60 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/animal/CanaryCow.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living.animal;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.passive.EntityCow;
5 |
6 | import static net.canarymod.api.entity.EntityType.COW;
7 |
8 | /**
9 | * Cow wrapper implementation
10 | *
11 | * @author Chris (damagefilter)
12 | * @author Jason (darkdiplomat)
13 | */
14 | public class CanaryCow extends CanaryAgeableAnimal implements Cow {
15 |
16 | /**
17 | * Constructs a new wrapper for EntityCow
18 | *
19 | * @param entity
20 | * the EntityCow to wrap
21 | */
22 | public CanaryCow(EntityCow entity) {
23 | super(entity);
24 | }
25 |
26 | /**
27 | * {@inheritDoc}
28 | */
29 | @Override
30 | public EntityType getEntityType() {
31 | return COW;
32 | }
33 |
34 | /**
35 | * {@inheritDoc}
36 | */
37 | @Override
38 | public String getFqName() {
39 | return "Cow";
40 | }
41 |
42 | /**
43 | * {@inheritDoc}
44 | */
45 | @Override
46 | public EntityCow getHandle() {
47 | return (EntityCow) entity;
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/animal/CanaryMooshroom.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living.animal;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.passive.EntityMooshroom;
5 |
6 | import static net.canarymod.api.entity.EntityType.MOOSHROOM;
7 |
8 | /**
9 | * MooshroomCow wrapper implementation
10 | *
11 | * @author Jason (darkdiplomat)
12 | */
13 | public class CanaryMooshroom extends CanaryCow implements Mooshroom {
14 |
15 | /**
16 | * Constructs a new wrapper for EntityMooshroom
17 | *
18 | * @param entity
19 | * the EntityMooshroom to wrap
20 | */
21 | public CanaryMooshroom(EntityMooshroom entity) {
22 | super(entity);
23 | }
24 |
25 | /**
26 | * {@inheritDoc}
27 | */
28 | @Override
29 | public EntityType getEntityType() {
30 | return MOOSHROOM;
31 | }
32 |
33 | @Override
34 | public String getFqName() {
35 | return "Mooshroom";
36 | }
37 |
38 | /**
39 | * {@inheritDoc}
40 | */
41 | @Override
42 | public EntityMooshroom getHandle() {
43 | return (EntityMooshroom) entity;
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/animal/CanaryOcelot.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living.animal;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.passive.EntityOcelot;
5 |
6 | /**
7 | * Ocelot wrapper implementation
8 | *
9 | * @author Jason (darkdiplomat)
10 | */
11 | public class CanaryOcelot extends CanaryTameable implements Ocelot {
12 |
13 | /**
14 | * Constructs a new wrapper for EntityOcelot
15 | *
16 | * @param entity the EntityOcelot to wrap
17 | */
18 | public CanaryOcelot(EntityOcelot entity) {
19 | super(entity);
20 | }
21 |
22 | /**
23 | * {@inheritDoc}
24 | */
25 | @Override
26 | public EntityType getEntityType() {
27 | return EntityType.OCELOT;
28 | }
29 |
30 | @Override
31 | public String getFqName() {
32 | return "Ocelot";
33 | }
34 |
35 | /**
36 | * {@inheritDoc}
37 | */
38 | @Override
39 | public SkinType getSkinType() {
40 | return SkinType.values()[getHandle().cr()];
41 | }
42 |
43 | /**
44 | * {@inheritDoc}
45 | */
46 | @Override
47 | public void setSkinType(SkinType type) {
48 | getHandle().r(type.ordinal());
49 | }
50 |
51 | /**
52 | * {@inheritDoc}
53 | */
54 | @Override
55 | public EntityOcelot getHandle() {
56 | return (EntityOcelot) entity;
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/animal/CanaryPig.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living.animal;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.canarymod.api.entity.vehicle.CanaryAnimalVehicle;
5 | import net.minecraft.entity.passive.EntityPig;
6 |
7 | import static net.canarymod.api.entity.EntityType.PIG;
8 |
9 | /**
10 | * Pig wrapper implementation
11 | *
12 | * @author Jason (darkdiplomat)
13 | */
14 | public class CanaryPig extends CanaryAnimalVehicle implements Pig {
15 |
16 | /**
17 | * Constructs a new wrapper for EntityPig
18 | *
19 | * @param entity the EntityPig to wrap
20 | */
21 | public CanaryPig(EntityPig entity) {
22 | super(entity);
23 | }
24 |
25 | /**
26 | * {@inheritDoc}
27 | */
28 | @Override
29 | public EntityType getEntityType() {
30 | return PIG;
31 | }
32 |
33 | @Override
34 | public String getFqName() {
35 | return "Pig";
36 | }
37 |
38 | /**
39 | * {@inheritDoc}
40 | */
41 | @Override
42 | public boolean isSaddled() {
43 | return getHandle().cj();
44 | }
45 |
46 | /**
47 | * {@inheritDoc}
48 | */
49 | @Override
50 | public void setSaddled(boolean saddled) {
51 | getHandle().l(saddled);
52 | }
53 |
54 | /**
55 | * {@inheritDoc}
56 | */
57 | @Override
58 | public int getGrowingAge() {
59 | return getHandle().l();
60 | }
61 |
62 | /**
63 | * {@inheritDoc}
64 | */
65 | @Override
66 | public void setGrowingAge(int age) {
67 | getHandle().b(age);
68 | }
69 |
70 | /**
71 | * {@inheritDoc}
72 | */
73 | @Override
74 | public EntityPig getHandle() {
75 | return (EntityPig) entity;
76 | }
77 | }
78 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/animal/CanaryRabbit.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living.animal;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.passive.EntityRabbit;
5 |
6 | /**
7 | * EntityRabbit wrapper implementation
8 | *
9 | * @author Jason Jones (darkdiplomat)
10 | */
11 | public class CanaryRabbit extends CanaryAnimal implements Rabbit {
12 |
13 | public CanaryRabbit(EntityRabbit rabbit) {
14 | super(rabbit);
15 | }
16 |
17 | @Override
18 | public String getFqName() {
19 | return "Rabbit";
20 | }
21 |
22 | @Override
23 | public EntityType getEntityType() {
24 | return EntityType.RABBIT;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/animal/CanarySquid.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living.animal;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.passive.EntitySquid;
5 |
6 | import static net.canarymod.api.entity.EntityType.SQUID;
7 |
8 | /**
9 | * Squid wrapper implementation
10 | *
11 | * @author Jason (darkdiplomat)
12 | */
13 | public class CanarySquid extends CanaryAnimal implements Squid {
14 |
15 | /**
16 | * Constructs a new wrapper for EntitySquid
17 | *
18 | * @param entity
19 | * the EntitySquid to wrap
20 | */
21 | public CanarySquid(EntitySquid entity) {
22 | super(entity);
23 | }
24 |
25 | /**
26 | * {@inheritDoc}
27 | */
28 | @Override
29 | public EntityType getEntityType() {
30 | return SQUID;
31 | }
32 |
33 | @Override
34 | public String getFqName() {
35 | return "Squid";
36 | }
37 |
38 | /**
39 | * {@inheritDoc}
40 | */
41 | @Override
42 | public EntitySquid getHandle() {
43 | return (EntitySquid) entity;
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/humanoid/npchelpers/EntityNPCJumpHelper.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living.humanoid.npchelpers;
2 |
3 | import net.canarymod.api.entity.living.humanoid.EntityNonPlayableCharacter;
4 |
5 | public class EntityNPCJumpHelper {
6 |
7 | private EntityNonPlayableCharacter b;
8 | private boolean a;
9 |
10 | public EntityNPCJumpHelper(EntityNonPlayableCharacter enpc) {
11 | this.b = enpc;
12 | }
13 |
14 | public void a() {
15 | this.a = true;
16 | }
17 |
18 | public void b() {
19 | this.b.i(this.a);
20 | this.a = false;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/monster/CanaryBlaze.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living.monster;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.monster.EntityBlaze;
5 |
6 | /**
7 | * Blaze wrapper implementation
8 | *
9 | * @author Jason (darkdiplomat)
10 | */
11 | public class CanaryBlaze extends CanaryEntityMob implements Blaze {
12 |
13 | /**
14 | * Constructs a new wrapper for EntityBlaze
15 | *
16 | * @param entity
17 | * the EntityBlaze to wrap
18 | */
19 | public CanaryBlaze(EntityBlaze entity) {
20 | super(entity);
21 | }
22 |
23 | /**
24 | * {@inheritDoc}
25 | */
26 | @Override
27 | public EntityType getEntityType() {
28 | return EntityType.BLAZE;
29 | }
30 |
31 | @Override
32 | public String getFqName() {
33 | return "Blaze";
34 | }
35 |
36 | /**
37 | * {@inheritDoc}
38 | */
39 | @Override
40 | public boolean isBurning() {
41 | return getHandle().n();
42 | }
43 |
44 | /**
45 | * {@inheritDoc}
46 | */
47 | @Override
48 | public void setBurning(boolean isBurning) {
49 | getHandle().a(isBurning);
50 | }
51 |
52 | /**
53 | * {@inheritDoc}
54 | */
55 | @Override
56 | public EntityBlaze getHandle() {
57 | return (EntityBlaze) entity;
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/monster/CanaryCaveSpider.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living.monster;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.monster.EntityCaveSpider;
5 |
6 | /**
7 | * Cave Spider wrapper
8 | *
9 | * @author Chris (damagefilter)
10 | * @author Jason (darkdiplomat)
11 | */
12 | public class CanaryCaveSpider extends CanarySpider {
13 |
14 | /**
15 | * Constructs a new wrapper for EntityCaveSpider
16 | *
17 | * @param entity
18 | * the EntityCaveSpider to wrap
19 | */
20 | public CanaryCaveSpider(EntityCaveSpider entity) {
21 | super(entity);
22 | }
23 |
24 | /**
25 | * {@inheritDoc}
26 | */
27 | @Override
28 | public EntityType getEntityType() {
29 | return EntityType.CAVESPIDER;
30 | }
31 |
32 | @Override
33 | public String getFqName() {
34 | return "CaveSpider";
35 | }
36 |
37 | /**
38 | * {@inheritDoc}
39 | */
40 | @Override
41 | public EntityCaveSpider getHandle() {
42 | return (EntityCaveSpider) entity;
43 | }
44 |
45 | }
46 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/monster/CanaryEnderDragon.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living.monster;
2 |
3 | import net.canarymod.api.entity.EnderCrystal;
4 | import net.canarymod.api.entity.EntityType;
5 | import net.canarymod.api.entity.living.CanaryEntityLiving;
6 | import net.minecraft.entity.boss.EntityDragon;
7 |
8 | /**
9 | * Dragon wrapper implementation
10 | *
11 | * @author Jason (darkdiplomat)
12 | */
13 | public class CanaryEnderDragon extends CanaryEntityLiving implements EnderDragon {
14 |
15 | /**
16 | * Constructs a new wrapper for EntityDragon
17 | *
18 | * @param entity
19 | * the EntityDragon to wrap
20 | */
21 | public CanaryEnderDragon(EntityDragon entity) {
22 | super(entity);
23 | }
24 |
25 | /**
26 | * {@inheritDoc}
27 | */
28 | @Override
29 | public EntityType getEntityType() {
30 | return EntityType.ENDERDRAGON;
31 | }
32 |
33 | @Override
34 | public String getFqName() {
35 | return "EnderDragon";
36 | }
37 |
38 | /**
39 | * {@inheritDoc}
40 | */
41 | @Override
42 | public boolean isSlowed() {
43 | return getHandle().bv;
44 | }
45 |
46 | /**
47 | * {@inheritDoc}
48 | */
49 | @Override
50 | public EnderCrystal getHealingCrystal() {
51 | return getHandle().bx != null ? (EnderCrystal) getHandle().bx.getCanaryEntity() : null;
52 | }
53 |
54 | /**
55 | * {@inheritDoc}
56 | */
57 | @Override
58 | public EntityDragon getHandle() {
59 | return (EntityDragon) entity;
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/monster/CanaryEndermite.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living.monster;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.monster.EntityEndermite;
5 |
6 | /**
7 | * EntityEndermite wrapper implementation
8 | *
9 | * @author Jason Jones (darkdiplomat)
10 | */
11 | public class CanaryEndermite extends CanaryEntityMob implements Endermite {
12 |
13 | public CanaryEndermite(EntityEndermite entity) {
14 | super(entity);
15 | }
16 |
17 | @Override
18 | public boolean isPlayerSpanwed() {
19 | return getHandle().n();
20 | }
21 |
22 | @Override
23 | public String getFqName() {
24 | return "Endermite";
25 | }
26 |
27 | @Override
28 | public EntityType getEntityType() {
29 | return EntityType.ENDERMITE;
30 | }
31 |
32 | public EntityEndermite getHandle() {
33 | return (EntityEndermite)super.getHandle();
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/monster/CanaryEntityMob.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living.monster;
2 |
3 | import net.canarymod.api.entity.living.CanaryEntityLiving;
4 | import net.minecraft.entity.EntityFlying;
5 | import net.minecraft.entity.monster.EntitySlime;
6 |
7 | /**
8 | * EntityMob wrapper implementation
9 | *
10 | * @author Jason (darkdiplomat)
11 | */
12 | public abstract class CanaryEntityMob extends CanaryEntityLiving implements EntityMob {
13 |
14 | public CanaryEntityMob(net.minecraft.entity.monster.EntityMob entity) {
15 | super(entity);
16 | }
17 |
18 | public CanaryEntityMob(EntitySlime entity) {
19 | super(entity);
20 | }
21 |
22 | public CanaryEntityMob(EntityFlying entity) {
23 | super(entity);
24 | }
25 |
26 | @Override
27 | public boolean isMob() {
28 | return true;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/monster/CanaryGiantZombie.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living.monster;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.monster.EntityGiantZombie;
5 |
6 | /**
7 | * GiantZombie wrapper implementation
8 | *
9 | * @author Jason (darkdiplomat)
10 | */
11 | public class CanaryGiantZombie extends CanaryEntityMob implements GiantZombie {
12 |
13 | /**
14 | * Constructs a new wrapper for EntityGiantZombie
15 | *
16 | * @param entity
17 | * the EntityGiantZombie to wrap
18 | */
19 | public CanaryGiantZombie(EntityGiantZombie entity) {
20 | super(entity);
21 | }
22 |
23 | /**
24 | * {@inheritDoc}
25 | */
26 | @Override
27 | public EntityType getEntityType() {
28 | return EntityType.GIANTZOMBIE;
29 | }
30 |
31 | @Override
32 | public String getFqName() {
33 | return "GiantZombie";
34 | }
35 |
36 | /**
37 | * {@inheritDoc}
38 | */
39 | @Override
40 | public EntityGiantZombie getHandle() {
41 | return (EntityGiantZombie) entity;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/monster/CanaryGuardian.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living.monster;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.monster.EntityGuardian;
5 |
6 | /**
7 | * EntityGuardian wrapper implementation
8 | *
9 | * @author Jason Jones (darkdiplomat)
10 | */
11 | public class CanaryGuardian extends CanaryEntityMob implements Guardian {
12 |
13 | public CanaryGuardian(EntityGuardian guardian) {
14 | super(guardian);
15 | }
16 |
17 | @Override
18 | public String getFqName() {
19 | return "Guardian";
20 | }
21 |
22 | @Override
23 | public EntityType getEntityType() {
24 | return EntityType.GUARDIAN;
25 | }
26 |
27 | @Override
28 | public boolean isElder() {
29 | return getHandle().cl();
30 | }
31 |
32 | public EntityGuardian getHandle() {
33 | return (EntityGuardian)super.getHandle();
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/monster/CanaryMagmaCube.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living.monster;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.monster.EntityMagmaCube;
5 |
6 | /**
7 | * LavaSlime wrapper implementation
8 | *
9 | * @author Jason (darkdiplomat)
10 | */
11 | public class CanaryMagmaCube extends CanarySlime implements MagmaCube {
12 |
13 | /**
14 | * Constructs a new wrapper for EntityMagmaCube
15 | *
16 | * @param entity
17 | * the EntityMagmaCube to wrap
18 | */
19 | public CanaryMagmaCube(EntityMagmaCube entity) {
20 | super(entity);
21 | }
22 |
23 | /**
24 | * {@inheritDoc}
25 | */
26 | @Override
27 | public EntityType getEntityType() {
28 | return EntityType.MAGMACUBE;
29 | }
30 |
31 | @Override
32 | public String getFqName() {
33 | return "MagmaCube";
34 | }
35 |
36 | /**
37 | * {@inheritDoc}
38 | */
39 | @Override
40 | public EntityMagmaCube getHandle() {
41 | return (EntityMagmaCube) entity;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/monster/CanarySilverfish.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living.monster;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.monster.EntitySilverfish;
5 |
6 | /**
7 | * Silverfish wrapper implementation
8 | *
9 | * @author Jason (darkdiplomat)
10 | */
11 | public class CanarySilverfish extends CanaryEntityMob implements Silverfish {
12 |
13 | /**
14 | * Constructs a new wrapper for EntitySilverfish
15 | *
16 | * @param entity
17 | * the EntitySilverfish to wrap
18 | */
19 | public CanarySilverfish(EntitySilverfish entity) {
20 | super(entity);
21 | }
22 |
23 | /**
24 | * {@inheritDoc}
25 | */
26 | @Override
27 | public EntityType getEntityType() {
28 | return EntityType.SILVERFISH;
29 | }
30 |
31 | @Override
32 | public String getFqName() {
33 | return "Silverfish";
34 | }
35 |
36 | /**
37 | * {@inheritDoc}
38 | */
39 | @Override
40 | public int getAllySummonCooldown() {
41 | throw new UnsupportedOperationException("Minecraft update broke this shit");
42 | }
43 |
44 | /**
45 | * {@inheritDoc}
46 | */
47 | @Override
48 | public void setAllySummonCooldown(int cooldown) {
49 | throw new UnsupportedOperationException("Minecraft update broke this shit");
50 | }
51 |
52 | /**
53 | * {@inheritDoc}
54 | */
55 | @Override
56 | public EntitySilverfish getHandle() {
57 | return (EntitySilverfish) entity;
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/monster/CanarySkeleton.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living.monster;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.monster.EntitySkeleton;
5 |
6 | /**
7 | * Skeleton wrapper implementation
8 | *
9 | * @author Jason (darkdiplomat)
10 | */
11 | public class CanarySkeleton extends CanaryEntityMob implements Skeleton {
12 |
13 | /**
14 | * Constructs a new wrapper for EntitySkeleton
15 | *
16 | * @param entity
17 | * the EntitySkeleton to wrap
18 | */
19 | public CanarySkeleton(EntitySkeleton entity) {
20 | super(entity);
21 | }
22 |
23 | /**
24 | * {@inheritDoc}
25 | */
26 | @Override
27 | public EntityType getEntityType() {
28 | return isWitherSkeleton() ? EntityType.WITHERSKELETON : EntityType.SKELETON;
29 | }
30 |
31 | @Override
32 | public String getFqName() {
33 | return "Skeleton";
34 | }
35 |
36 | /**
37 | * {@inheritDoc}
38 | */
39 | @Override
40 | public boolean isWitherSkeleton() {
41 | return getHandle().ck() == 1;
42 | }
43 |
44 | /**
45 | * {@inheritDoc}
46 | */
47 | @Override
48 | public void setIsWitherSkeleton(boolean wither) {
49 | getHandle().a(wither ? 1 : 0);
50 | }
51 |
52 | /**
53 | * {@inheritDoc}
54 | */
55 | @Override
56 | public EntitySkeleton getHandle() {
57 | return (EntitySkeleton) entity;
58 | }
59 |
60 | }
61 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/monster/CanarySlime.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living.monster;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.monster.EntitySlime;
5 |
6 | /**
7 | * Slime wrapper implementation
8 | *
9 | * @author Chris (damagefilter)
10 | * @author Jason (darkdiplomat)
11 | */
12 | public class CanarySlime extends CanaryEntityMob implements Slime {
13 |
14 | /**
15 | * Constructs a new wrapper for EntitySlime
16 | *
17 | * @param entity
18 | * the EntitySlime to wrap
19 | */
20 | public CanarySlime(EntitySlime entity) {
21 | super(entity);
22 | }
23 |
24 | /**
25 | * {@inheritDoc}
26 | */
27 | @Override
28 | public EntityType getEntityType() {
29 | return EntityType.SLIME;
30 | }
31 |
32 | @Override
33 | public String getFqName() {
34 | return "Slime";
35 | }
36 |
37 | /**
38 | * {@inheritDoc}
39 | */
40 | @Override
41 | public Size getSize() {
42 | return Size.fromByte((byte) getHandle().ck());
43 | }
44 |
45 | /**
46 | * {@inheritDoc}
47 | */
48 | @Override
49 | public void setSize(Size size) {
50 | getHandle().a(size.getByte());
51 | }
52 |
53 | /**
54 | * {@inheritDoc}
55 | */
56 | @Override
57 | public EntitySlime getHandle() {
58 | return (EntitySlime) entity;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/monster/CanarySpider.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living.monster;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.monster.EntitySpider;
5 |
6 | /**
7 | * Spider wrapper implementation
8 | *
9 | * @author Jason (darkdiplomat)
10 | */
11 | public class CanarySpider extends CanaryEntityMob implements Spider {
12 |
13 | /**
14 | * Constructs a new wrapper for EntitySpider
15 | *
16 | * @param entity
17 | * the EntitySpider to wrap
18 | */
19 | public CanarySpider(EntitySpider entity) {
20 | super(entity);
21 | }
22 |
23 | /**
24 | * {@inheritDoc}
25 | */
26 | @Override
27 | public EntityType getEntityType() {
28 | return EntityType.SPIDER;
29 | }
30 |
31 | @Override
32 | public String getFqName() {
33 | return "Spider";
34 | }
35 |
36 | /**
37 | * {@inheritDoc}
38 | */
39 | @Override
40 | public EntitySpider getHandle() {
41 | return (EntitySpider) entity;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/monster/CanaryWitch.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living.monster;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.monster.EntityWitch;
5 |
6 | /**
7 | * Witch wrapper implementation
8 | *
9 | * @author Jason (darkdiplomat)
10 | */
11 | public class CanaryWitch extends CanaryEntityMob implements Witch {
12 |
13 | /**
14 | * Constructs a new wrapper for EntityWitch
15 | *
16 | * @param entity
17 | * the EntityWitch to wrap
18 | */
19 | public CanaryWitch(EntityWitch entity) {
20 | super(entity);
21 | }
22 |
23 | /**
24 | * {@inheritDoc}
25 | */
26 | @Override
27 | public EntityType getEntityType() {
28 | return EntityType.WITCH;
29 | }
30 |
31 | @Override
32 | public String getFqName() {
33 | return "Witch";
34 | }
35 |
36 | /**
37 | * {@inheritDoc}
38 | */
39 | @Override
40 | public boolean isAgressive() {
41 | return getHandle().n();
42 | }
43 |
44 | /**
45 | * {@inheritDoc}
46 | */
47 | @Override
48 | public void setAggressive(boolean aggressive) {
49 | getHandle().a(aggressive);
50 | }
51 |
52 | /**
53 | * {@inheritDoc}
54 | */
55 | @Override
56 | public EntityWitch getHandle() {
57 | return (EntityWitch) entity;
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/living/monster/CanaryWither.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.living.monster;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.boss.EntityWither;
5 |
6 | /**
7 | * Wither wrapper implementation
8 | *
9 | * @author Jason (darkdiplomat)
10 | */
11 | public class CanaryWither extends CanaryEntityMob implements Wither {
12 |
13 | /**
14 | * Constructs a new wrapper for EntityWither
15 | *
16 | * @param entity
17 | * the EntityWither to wrap
18 | */
19 | public CanaryWither(EntityWither entity) {
20 | super(entity);
21 | }
22 |
23 | /**
24 | * {@inheritDoc}
25 | */
26 | @Override
27 | public EntityType getEntityType() {
28 | return EntityType.WITHER;
29 | }
30 |
31 | @Override
32 | public String getFqName() {
33 | return "Wither";
34 | }
35 |
36 | /**
37 | * {@inheritDoc}
38 | */
39 | @Override
40 | public EntityWither getHandle() {
41 | return (EntityWither) entity;
42 | }
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/throwable/CanaryChickenEgg.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.throwable;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.projectile.EntityEgg;
5 |
6 | /**
7 | * ChickenEgg wrapper implementation
8 | *
9 | * @author Jason (darkdiplomat)
10 | */
11 | public class CanaryChickenEgg extends CanaryEntityThrowable implements ChickenEgg {
12 |
13 | /**
14 | * Constructs a new wrapper for EntityEgg
15 | *
16 | * @param entity
17 | * the EntityEgg to be wrapped
18 | */
19 | public CanaryChickenEgg(EntityEgg entity) {
20 | super(entity);
21 | }
22 |
23 | @Override
24 | public EntityType getEntityType() {
25 | return EntityType.CHICKENEGG;
26 | }
27 |
28 | @Override
29 | public String getFqName() {
30 | return "ChickenEgg";
31 | }
32 |
33 | /**
34 | * {@inheritDoc}
35 | */
36 | @Override
37 | public EntityEgg getHandle() {
38 | return (EntityEgg) entity;
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/throwable/CanaryEnderPearl.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.throwable;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.item.EntityEnderPearl;
5 |
6 | /**
7 | * EnderPearl wrapper implementation
8 | *
9 | * @author Jason (darkdiplomat)
10 | */
11 | public class CanaryEnderPearl extends CanaryEntityThrowable implements EnderPearl {
12 |
13 | /**
14 | * Constructs a new wrapper for EntityEnderPearl
15 | *
16 | * @param entity
17 | * the EntityEnderPearl to be wrapped
18 | */
19 | public CanaryEnderPearl(EntityEnderPearl entity) {
20 | super(entity);
21 | }
22 |
23 | @Override
24 | public EntityType getEntityType() {
25 | return EntityType.ENDERPEARL;
26 | }
27 |
28 | @Override
29 | public String getFqName() {
30 | return "EnderPearl";
31 | }
32 |
33 | /**
34 | * {@inheritDoc}
35 | */
36 | @Override
37 | public EntityEnderPearl getHandle() {
38 | return (EntityEnderPearl) entity;
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/throwable/CanaryEntityThrowable.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.throwable;
2 |
3 | import net.canarymod.api.entity.CanaryEntity;
4 | import net.canarymod.api.entity.living.LivingBase;
5 |
6 | /**
7 | * EntityThrowable wrapper implementation
8 | *
9 | * @author Jason (darkdiplomat)
10 | */
11 | public abstract class CanaryEntityThrowable extends CanaryEntity implements EntityThrowable {
12 |
13 | /**
14 | * Constructs a new wrapper for EntityThrowable
15 | *
16 | * @param entity
17 | * the EntityThrowable to be wrapped
18 | */
19 | public CanaryEntityThrowable(net.minecraft.entity.projectile.EntityThrowable entity) {
20 | super(entity);
21 | }
22 |
23 | /**
24 | * {@inheritDoc}
25 | */
26 | @Override
27 | public float getGravity() {
28 | return getHandle().gravity;
29 | }
30 |
31 | /**
32 | * {@inheritDoc}
33 | */
34 | @Override
35 | public void setGravity(float velocity) {
36 | getHandle().gravity = velocity;
37 | }
38 |
39 | /**
40 | * {@inheritDoc}
41 | */
42 | @Override
43 | public LivingBase getThrower() {
44 | return (LivingBase) getHandle().n().getCanaryEntity();
45 | }
46 |
47 | /**
48 | * {@inheritDoc}
49 | */
50 | @Override
51 | public void setProjectileHeading(double motionX, double motionY, double motionZ, float rotationYaw, float rotationPitch) {
52 | getHandle().c(motionX, motionY, motionZ, rotationYaw, rotationPitch);
53 | }
54 |
55 | @Override
56 | public net.minecraft.entity.projectile.EntityThrowable getHandle() {
57 | return (net.minecraft.entity.projectile.EntityThrowable) entity;
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/throwable/CanarySnowball.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.throwable;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.projectile.EntitySnowball;
5 |
6 | /**
7 | * Snowball wrapper implementation
8 | *
9 | * @author Jason (darkdiplomat)
10 | */
11 | public class CanarySnowball extends CanaryEntityThrowable implements Snowball {
12 |
13 | /**
14 | * Constructs a new wrapper for EntitySnowball
15 | *
16 | * @param entity
17 | * the EntitySnowball to wrap
18 | */
19 | public CanarySnowball(EntitySnowball entity) {
20 | super(entity);
21 | }
22 |
23 | @Override
24 | public EntityType getEntityType() {
25 | return EntityType.SNOWBALL;
26 | }
27 |
28 | @Override
29 | public String getFqName() {
30 | return "Snowball";
31 | }
32 |
33 | /**
34 | * {@inheritDoc}
35 | */
36 | @Override
37 | public EntitySnowball getHandle() {
38 | return (EntitySnowball) entity;
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/throwable/CanaryXPBottle.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.throwable;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.item.EntityExpBottle;
5 |
6 | /**
7 | * XPBottle wrapper implementation
8 | *
9 | * @author Jason (darkdiplomat)
10 | */
11 | public class CanaryXPBottle extends CanaryEntityThrowable implements XPBottle {
12 |
13 | /**
14 | * Constructs a new wrapper for EntityExpBottle
15 | *
16 | * @param entity
17 | * the EntityExpBottle to be wrapped
18 | */
19 | public CanaryXPBottle(EntityExpBottle entity) {
20 | super(entity);
21 | }
22 |
23 | @Override
24 | public EntityType getEntityType() {
25 | return EntityType.XPBOTTLE;
26 | }
27 |
28 | @Override
29 | public String getFqName() {
30 | return "XPBottle";
31 | }
32 |
33 | /**
34 | * {@inheritDoc}
35 | */
36 | @Override
37 | public EntityExpBottle getHandle() {
38 | return (EntityExpBottle) entity;
39 | }
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/vehicle/CanaryAnimalVehicle.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.vehicle;
2 |
3 | import net.canarymod.api.entity.Entity;
4 | import net.canarymod.api.entity.living.animal.CanaryAnimal;
5 | import net.minecraft.entity.passive.EntityHorse;
6 | import net.minecraft.entity.passive.EntityPig;
7 |
8 | /**
9 | * Animal Vehicle implementation
10 | *
11 | * @author Jason (darkdiplomat)
12 | */
13 | public abstract class CanaryAnimalVehicle extends CanaryAnimal implements Vehicle {
14 |
15 | public CanaryAnimalVehicle(EntityPig entity) {
16 | super(entity);
17 | }
18 |
19 | public CanaryAnimalVehicle(EntityHorse entity) {
20 | super(entity);
21 | }
22 |
23 | @Override
24 | public Entity getPassenger() {
25 | if (!isEmpty()) {
26 | return entity.m.getCanaryEntity();
27 | }
28 | return null;
29 | }
30 |
31 | @Override
32 | public boolean isBoat() {
33 | return false;
34 | }
35 |
36 | @Override
37 | public boolean isMinecart() {
38 | return false;
39 | }
40 |
41 | @Override
42 | public boolean isEmpty() {
43 | return entity.m == null;
44 | }
45 | }
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/vehicle/CanaryBoat.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.vehicle;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.item.EntityBoat;
5 |
6 | /**
7 | * Boat wrapper implementation
8 | *
9 | * @author Jason (darkdiplomat)
10 | */
11 | public class CanaryBoat extends CanaryVehicle implements Boat {
12 |
13 | /**
14 | * Constructs a new wrapper for EntityBoat
15 | *
16 | * @param entity
17 | * the EntityBoat to be wrapped
18 | */
19 | public CanaryBoat(EntityBoat entity) {
20 | super(entity);
21 | }
22 |
23 | @Override
24 | public EntityType getEntityType() {
25 | return EntityType.BOAT;
26 | }
27 |
28 | @Override
29 | public String getFqName() {
30 | return "Boat";
31 | }
32 |
33 | /**
34 | * {@inheritDoc}
35 | */
36 | @Override
37 | public int getForwardDirection() {
38 | return getHandle().m();
39 | }
40 |
41 | /**
42 | * {@inheritDoc}
43 | */
44 | @Override
45 | public void setForwardDirection(int direction) {
46 | getHandle().b(direction);
47 | }
48 |
49 | /**
50 | * {@inheritDoc}
51 | */
52 | @Override
53 | public EntityBoat getHandle() {
54 | return (EntityBoat) this.entity;
55 | }
56 |
57 | }
58 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/vehicle/CanaryChestMinecart.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.vehicle;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.canarymod.api.inventory.InventoryType;
5 | import net.minecraft.entity.item.EntityMinecartChest;
6 |
7 | /**
8 | * ChestMinecart wrapper implementation
9 | *
10 | * @author Jason (darkdiplomat)
11 | */
12 | public class CanaryChestMinecart extends CanaryContainerMinecart implements ChestMinecart {
13 |
14 | /**
15 | * Constructs a new wrapper for EntityMinecartChest
16 | *
17 | * @param entity
18 | * the EntityMinecartChest to be wrapped
19 | */
20 | public CanaryChestMinecart(EntityMinecartChest entity) {
21 | super(entity);
22 | }
23 |
24 | @Override
25 | public EntityType getEntityType() {
26 | return EntityType.CHESTMINECART;
27 | }
28 |
29 | public InventoryType getInventoryType() {
30 | return InventoryType.MINECART_CHEST;
31 | }
32 |
33 | @Override
34 | public String getFqName() {
35 | return "ChestMinecart";
36 | }
37 |
38 | /**
39 | * {@inheritDoc}
40 | */
41 | @Override
42 | public EntityMinecartChest getHandle() {
43 | return (EntityMinecartChest) entity;
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/vehicle/CanaryEmptyMinecart.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.vehicle;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.minecraft.entity.item.EntityMinecartEmpty;
5 |
6 | /**
7 | * EmptyMinecart wrapper implementation
8 | *
9 | * @author Jason (darkdiplomat)
10 | */
11 | public class CanaryEmptyMinecart extends CanaryMinecart implements EmptyMinecart {
12 |
13 | /**
14 | * Constructs a new wrapper for EntityMinecartEmpty
15 | *
16 | * @param entity
17 | * the EntityMinecartEmpty to be wrapped
18 | */
19 | public CanaryEmptyMinecart(EntityMinecartEmpty entity) {
20 | super(entity);
21 | }
22 |
23 | @Override
24 | public EntityType getEntityType() {
25 | return EntityType.EMPTYMINECART;
26 | }
27 |
28 | @Override
29 | public String getFqName() {
30 | return "EmptyMinecart";
31 | }
32 |
33 | /**
34 | * {@inheritDoc}
35 | */
36 | @Override
37 | public EntityMinecartEmpty getHandle() {
38 | return (EntityMinecartEmpty) entity;
39 | }
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/vehicle/CanaryMinecart.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.vehicle;
2 |
3 | import net.minecraft.entity.item.EntityMinecart;
4 |
5 | /**
6 | * Minecart wrapper implementation
7 | *
8 | * @author Jason (darkdiplomat)
9 | */
10 | public abstract class CanaryMinecart extends CanaryVehicle implements Minecart {
11 |
12 | /**
13 | * Constructs a new wrapper for EntityMinecart
14 | *
15 | * @param entity
16 | * the EntityMinecart to be wrapped
17 | */
18 | public CanaryMinecart(EntityMinecart entity) {
19 | super(entity);
20 | }
21 |
22 | /**
23 | * {@inheritDoc}
24 | */
25 | @Override
26 | public boolean isInReverse() {
27 | return getHandle().a;
28 | }
29 |
30 | /**
31 | * {@inheritDoc}
32 | */
33 | @Override
34 | public void setRollingAmplitude(int amp) {
35 | getHandle().j(amp);
36 | }
37 |
38 | /**
39 | * {@inheritDoc}
40 | */
41 | @Override
42 | public int getRollingAmplitude() {
43 | return getHandle().q();
44 | }
45 |
46 | /**
47 | * {@inheritDoc}
48 | */
49 | @Override
50 | public void setRollingDirection(int direction) {
51 | getHandle().k(direction);
52 | }
53 |
54 | /**
55 | * {@inheritDoc}
56 | */
57 | @Override
58 | public int getRollingDirection() {
59 | return getHandle().r();
60 | }
61 |
62 | /**
63 | * {@inheritDoc}
64 | */
65 | @Override
66 | public EntityMinecart getHandle() {
67 | return (EntityMinecart) entity;
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/vehicle/CanaryMobSpawnerMinecart.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.vehicle;
2 |
3 | import net.canarymod.api.MobSpawnerLogic;
4 | import net.canarymod.api.entity.EntityType;
5 | import net.minecraft.entity.ai.EntityMinecartMobSpawner;
6 |
7 | /**
8 | * MobSpawnerMinecart wrapper implementation
9 | *
10 | * @author Jason (darkdiplomat)
11 | */
12 | public class CanaryMobSpawnerMinecart extends CanaryMinecart implements MobSpawnerMinecart {
13 |
14 | public CanaryMobSpawnerMinecart(EntityMinecartMobSpawner entity) {
15 | super(entity);
16 | }
17 |
18 | @Override
19 | public MobSpawnerLogic getMobSpawnerLogic() {
20 | return ((EntityMinecartMobSpawner) entity).a.logic;
21 | }
22 |
23 | @Override
24 | public EntityType getEntityType() {
25 | return EntityType.MOBSPAWNERMINECART;
26 | }
27 |
28 | @Override
29 | public String getFqName() {
30 | return "MobSpawnerMinecart";
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/entity/vehicle/CanaryVehicle.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.entity.vehicle;
2 |
3 | import net.canarymod.api.entity.CanaryEntity;
4 | import net.canarymod.api.entity.Entity;
5 | import net.minecraft.entity.item.EntityBoat;
6 | import net.minecraft.entity.item.EntityMinecart;
7 |
8 | /**
9 | * Vehicle implementation
10 | *
11 | * @author Jason (darkdiplomat)
12 | */
13 | public abstract class CanaryVehicle extends CanaryEntity implements Vehicle {
14 |
15 | public CanaryVehicle(EntityBoat entity) {
16 | super(entity);
17 | }
18 |
19 | public CanaryVehicle(EntityMinecart entity) {
20 | super(entity);
21 | }
22 |
23 | @Override
24 | public Entity getPassenger() {
25 | if (!isEmpty()) {
26 | return entity.m.getCanaryEntity();
27 | }
28 | return null;
29 | }
30 |
31 | @Override
32 | public boolean isBoat() {
33 | return (this instanceof CanaryBoat);
34 | }
35 |
36 | @Override
37 | public boolean isMinecart() {
38 | return (this instanceof CanaryMinecart);
39 | }
40 |
41 | @Override
42 | public boolean isEmpty() {
43 | return entity.m == null;
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/factory/CanaryPotionFactory.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.factory;
2 |
3 | import net.canarymod.api.potion.CanaryPotionEffect;
4 | import net.canarymod.api.potion.PotionEffect;
5 | import net.canarymod.api.potion.PotionEffectType;
6 |
7 | public class CanaryPotionFactory implements PotionFactory {
8 |
9 | @Override
10 | public PotionEffect newPotionEffect(int id, int duration, int amplifier) {
11 | net.minecraft.potion.PotionEffect oEffect = new net.minecraft.potion.PotionEffect(id, duration, amplifier);
12 | return new CanaryPotionEffect(oEffect);
13 | }
14 |
15 | @Override
16 | public PotionEffect newPotionEffect(int id, int duration, int amplifier, boolean ambient) {
17 | net.minecraft.potion.PotionEffect oEffect = new net.minecraft.potion.PotionEffect(id, duration, amplifier, ambient, true);
18 | return new CanaryPotionEffect(oEffect);
19 | }
20 |
21 | @Override
22 | public PotionEffect newPotionEffect(PotionEffectType type, int duration, int amplifier) {
23 | if (type == null) {
24 | return null;
25 | }
26 | return newPotionEffect(type.getID(), duration, amplifier);
27 | }
28 |
29 | @Override
30 | public PotionEffect newPotionEffect(PotionEffectType type, int duration, int amplifier, boolean ambient) {
31 | if (type == null) {
32 | return null;
33 | }
34 | return newPotionEffect(type.getID(), duration, amplifier, ambient);
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/factory/CanaryStatisticsFactory.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.factory;
2 |
3 | import net.canarymod.api.statistics.Achievement;
4 | import net.canarymod.api.statistics.Stat;
5 | import net.minecraft.stats.StatList;
6 |
7 | /**
8 | * Statistics Factory implementation
9 | *
10 | * @author Jason (darkdiplomat)
11 | */
12 | public final class CanaryStatisticsFactory implements StatisticsFactory {
13 |
14 | @Override
15 | public Stat getStat(String nmsName) {
16 | return StatList.a(nmsName).getCanaryStat();
17 | }
18 |
19 | @Override
20 | public Achievement getAchievement(String nmsName) {
21 | Stat stat = getStat(nmsName);
22 | return stat != null ? (Achievement) stat : null;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/inventory/CanaryBaseItem.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.inventory;
2 |
3 | /**
4 | * This is a basic Item wrapper, not for Itemstack, but for Item
5 | *
6 | * @author Chris (damagefilter)
7 | * @author Jason (darkdiplomat)
8 | */
9 | public class CanaryBaseItem implements BaseItem {
10 |
11 | private net.minecraft.item.Item item;
12 |
13 | /**
14 | * Constructs a new Item wrapper
15 | *
16 | * @param item
17 | * the Item to wrap
18 | */
19 | public CanaryBaseItem(net.minecraft.item.Item item) {
20 | this.item = item;
21 | }
22 |
23 | /**
24 | * {@inheritDoc}
25 | */
26 | @Override
27 | public int getMaxStackSize() {
28 | return item.j();
29 | }
30 |
31 | /**
32 | * {@inheritDoc}
33 | */
34 | @Override
35 | public int getMaxDamage() {
36 | return item.l();
37 | }
38 |
39 | /**
40 | * {@inheritDoc}
41 | */
42 | @Override
43 | public void setMaxDamage(int damage) {
44 | item.c(damage);
45 | }
46 |
47 | /**
48 | * {@inheritDoc}
49 | */
50 | @Override
51 | public boolean isDamageable() {
52 | return item.m();
53 | }
54 |
55 | }
56 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/inventory/CanaryOfflineEnderChestInventory.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.inventory;
2 |
3 | import net.canarymod.api.OfflinePlayer;
4 | import net.canarymod.api.entity.living.humanoid.Human;
5 | import net.canarymod.api.nbt.CanaryBaseTag;
6 | import net.canarymod.api.nbt.CanaryListTag;
7 | import net.canarymod.api.nbt.ListTag;
8 | import net.minecraft.inventory.InventoryEnderChest;
9 |
10 | /**
11 | * Offline EnderChest wrapper implementation
12 | *
13 | * @author Jason Jones (darkdiplomat)
14 | */
15 | public class CanaryOfflineEnderChestInventory extends CanaryEnderChestInventory {
16 |
17 | public CanaryOfflineEnderChestInventory(OfflinePlayer offlinePlayer) {
18 | super(formInventory(offlinePlayer), null);
19 | }
20 |
21 | @Override
22 | public Human getInventoryOwner() {
23 | throw new UnsupportedOperationException("Offline Ender Chest references does not have a \"HUMAN\" owner. Please correct your plugin.");
24 | }
25 |
26 | private static InventoryEnderChest formInventory(OfflinePlayer offlinePlayer) {
27 | InventoryEnderChest iec = new InventoryEnderChest();
28 | iec.a(((CanaryListTag)offlinePlayer.getNBT().getListTag("EnderItems")).getHandle());
29 | return iec;
30 | }
31 |
32 | public ListTag storeInventory() {
33 | return (ListTag)CanaryBaseTag.wrap(getHandle().h());
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/inventory/CanaryOfflinePlayerInventory.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.inventory;
2 |
3 | import net.canarymod.api.OfflinePlayer;
4 | import net.canarymod.api.nbt.CanaryBaseTag;
5 | import net.canarymod.api.nbt.CanaryListTag;
6 | import net.canarymod.api.nbt.ListTag;
7 | import net.minecraft.entity.player.InventoryPlayer;
8 | import net.minecraft.nbt.NBTTagList;
9 |
10 | /**
11 | * Copyright (C) 2015 Visual Illusions Entertainment
12 | * All Rights Reserved.
13 | *
14 | * @author Jason Jones (darkdiplomat)
15 | */
16 | public class CanaryOfflinePlayerInventory extends CanaryPlayerInventory {
17 |
18 | public CanaryOfflinePlayerInventory(OfflinePlayer offlinePlayer) {
19 | super(formInventory(offlinePlayer));
20 | }
21 |
22 | private static InventoryPlayer formInventory(OfflinePlayer offlinePlayer) {
23 | InventoryPlayer ip = new InventoryPlayer(null);
24 | ip.b(((CanaryListTag)offlinePlayer.getNBT().getListTag("Inventory")).getHandle());
25 | return ip;
26 | }
27 |
28 | public ListTag storeInventory() {
29 | NBTTagList tag = new NBTTagList();
30 | getHandle().b(tag);
31 | return (ListTag)CanaryBaseTag.wrap(tag);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/inventory/NativeCustomStorageInventory.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.inventory;
2 |
3 | import net.minecraft.inventory.InventoryBasic;
4 |
5 | /**
6 | * Native Custom Storage Inventory instance
7 | *
8 | * @author Jason (darkdiplomat)
9 | */
10 | public class NativeCustomStorageInventory extends InventoryBasic {
11 | private final CanaryCustomStorageInventory ccsi;
12 |
13 | public NativeCustomStorageInventory(int num_rows) {
14 | super("custom", false, num_rows > 6 ? 54 : num_rows * 9);
15 | this.ccsi = new CanaryCustomStorageInventory(this);
16 | }
17 |
18 | public NativeCustomStorageInventory(int num_rows, String name) {
19 | super(name, false, num_rows > 6 ? 54 : num_rows * 9);
20 | this.ccsi = new CanaryCustomStorageInventory(this);
21 | }
22 |
23 | public CanaryCustomStorageInventory getCanaryCustomInventory() {
24 | return this.ccsi;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/inventory/recipes/CanaryRecipe.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.inventory.recipes;
2 |
3 | import net.canarymod.Canary;
4 | import net.canarymod.api.inventory.CanaryPlayerCraftingMatrix;
5 | import net.canarymod.api.inventory.CraftingMatrix;
6 | import net.canarymod.api.inventory.Item;
7 | import net.canarymod.api.world.CanaryWorld;
8 | import net.canarymod.api.world.blocks.CanaryWorkbench;
9 | import net.minecraft.item.crafting.IRecipe;
10 |
11 | /**
12 | * Implementation of the IRecipe wrapper
13 | *
14 | * @author Jason (darkdiplomat)
15 | */
16 | public abstract class CanaryRecipe implements Recipe {
17 |
18 | protected final IRecipe recipe;
19 |
20 | public CanaryRecipe(IRecipe recipe) {
21 | this.recipe = recipe;
22 | }
23 |
24 | @Override
25 | public Item getResult() {
26 | return recipe.b().getCanaryItem();
27 | }
28 |
29 | @Override
30 | public int getRecipeSize() {
31 | return recipe.a();
32 | }
33 |
34 | public boolean matchesMatrix(CraftingMatrix matrix) {
35 | if (matrix instanceof CanaryPlayerCraftingMatrix) {
36 | if (getHandle().a(((CanaryPlayerCraftingMatrix) matrix).getHandle(), ((CanaryWorld) Canary.getServer().getDefaultWorld()).getHandle())) {
37 | return true;
38 | }
39 | }
40 | else if (matrix instanceof CanaryWorkbench) {
41 | if (getHandle().a(((CanaryWorkbench) matrix).getInventory(), ((CanaryWorld) Canary.getServer().getDefaultWorld()).getHandle())) {
42 | return true;
43 | }
44 | }
45 | return false;
46 | }
47 |
48 | public abstract IRecipe getHandle();
49 |
50 | }
51 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/inventory/recipes/CanaryShapedRecipe.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.inventory.recipes;
2 |
3 | import net.canarymod.api.inventory.CanaryItem;
4 | import net.canarymod.api.inventory.Item;
5 | import net.minecraft.item.crafting.ShapedRecipes;
6 |
7 | public class CanaryShapedRecipe extends CanaryRecipe implements ShapedRecipe {
8 |
9 | public CanaryShapedRecipe(ShapedRecipes recipe) {
10 | super(recipe);
11 | }
12 |
13 | @Override
14 | public int getWidth() {
15 | return getHandle().getWidth();
16 | }
17 |
18 | @Override
19 | public int getHeight() {
20 | return getHandle().getHeight();
21 | }
22 |
23 | @Override
24 | public Item[] getRecipeItems() {
25 | return CanaryItem.stackArrayToItemArray(getHandle().getRecipeItems());
26 | }
27 |
28 | @Override
29 | public ShapedRecipes getHandle() {
30 | return (ShapedRecipes) recipe;
31 | }
32 |
33 | @Override
34 | public boolean isShapeless() {
35 | return false;
36 | }
37 |
38 | @Override
39 | public boolean isShaped() {
40 | return true;
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/inventory/recipes/CanaryShapelessRecipe.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.inventory.recipes;
2 |
3 | import net.canarymod.api.inventory.Item;
4 | import net.minecraft.item.ItemStack;
5 | import net.minecraft.item.crafting.ShapelessRecipes;
6 |
7 | import java.util.ArrayList;
8 | import java.util.List;
9 |
10 | /**
11 | * Implementation of the ShapelessRecipes wrapper
12 | *
13 | * @author Jason (darkdiplomat)
14 | */
15 | public class CanaryShapelessRecipe extends CanaryRecipe implements ShapelessRecipe {
16 |
17 | public CanaryShapelessRecipe(ShapelessRecipes shapeless) {
18 | super(shapeless);
19 | }
20 |
21 | @Override
22 | public List- getRecipeItems() {
23 | ArrayList
- items = new ArrayList
- ();
24 | for (ItemStack itemstack : getHandle().getRecipeItems()) {
25 | items.add(itemstack.getCanaryItem());
26 | }
27 | return items;
28 | }
29 |
30 | @Override
31 | public boolean isShapeless() {
32 | return true;
33 | }
34 |
35 | @Override
36 | public boolean isShaped() {
37 | return false;
38 | }
39 |
40 | @Override
41 | public ShapelessRecipes getHandle() {
42 | return (ShapelessRecipes) recipe;
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/nbt/CanaryByteArrayTag.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.nbt;
2 |
3 | import net.minecraft.nbt.NBTTagByteArray;
4 |
5 | /**
6 | * ByteArrayTag wrapper implementation
7 | *
8 | * @author Greg (gregthegeek)
9 | * @author Jason (darkdiplomat)
10 | */
11 | public class CanaryByteArrayTag extends CanaryBaseTag implements ByteArrayTag {
12 |
13 | /**
14 | * Constructs a new wrapper for NBTTagByteArray
15 | *
16 | * @param tag
17 | * the NBTTagByteArray to wrap
18 | */
19 | public CanaryByteArrayTag(NBTTagByteArray tag) {
20 | super(tag);
21 | }
22 |
23 | /**
24 | * Constructs a new CanaryByteArrayTag and associated NBTTagByteArray
25 | *
26 | * @param value
27 | * the byte array to supply the tag
28 | */
29 | public CanaryByteArrayTag(byte[] value) {
30 | super(new NBTTagByteArray(value));
31 | }
32 |
33 | /**
34 | * {@inheritDoc}
35 | */
36 | @Override
37 | public byte[] getValue() {
38 | return getHandle().c();
39 | }
40 |
41 | /**
42 | * {@inheritDoc}
43 | */
44 | @Override
45 | public void setValue(byte[] value) {
46 | if (value == null || value.length <= 0) {
47 | return;
48 | }
49 | getHandle().b = value;
50 | }
51 |
52 | /**
53 | * {@inheritDoc}
54 | */
55 | @Override
56 | public ByteArrayTag copy() {
57 | return new CanaryByteArrayTag((NBTTagByteArray) getHandle().b());
58 | }
59 |
60 | /**
61 | * {@inheritDoc}
62 | */
63 | @Override
64 | public NBTTagByteArray getHandle() {
65 | return (NBTTagByteArray) tag;
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/nbt/CanaryByteTag.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.nbt;
2 |
3 | import net.minecraft.nbt.NBTTagByte;
4 |
5 | /**
6 | * ByteTag wrapper implementation
7 | *
8 | * @author Greg (gregthegeek)
9 | * @author Jason (darkdiplomat)
10 | */
11 | public class CanaryByteTag extends CanaryPrimitiveTag implements ByteTag {
12 |
13 | /**
14 | * Constructs a new wrapper for NBTTagByte
15 | *
16 | * @param tag
17 | * the NBTTagByte to wrap
18 | */
19 | public CanaryByteTag(NBTTagByte tag) {
20 | super(tag);
21 | }
22 |
23 | /**
24 | * Constructs a new CanaryByteTag and associated NBTTagByte
25 | *
26 | * @param value
27 | * the byte to supply to the tag
28 | */
29 | public CanaryByteTag(byte value) {
30 | super(new NBTTagByte(value));
31 | }
32 |
33 | /**
34 | * {@inheritDoc}
35 | */
36 | @Override
37 | public byte getValue() {
38 | return getByteValue();
39 | }
40 |
41 | /**
42 | * {@inheritDoc}
43 | */
44 | @Override
45 | public void setValue(byte value) {
46 | getHandle().b = value;
47 | }
48 |
49 | /**
50 | * {@inheritDoc}
51 | */
52 | @Override
53 | public ByteTag copy() {
54 | return new CanaryByteTag((NBTTagByte) getHandle().b());
55 | }
56 |
57 | /**
58 | * {@inheritDoc}
59 | */
60 | @Override
61 | public NBTTagByte getHandle() {
62 | return (NBTTagByte) tag;
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/nbt/CanaryDoubleTag.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.nbt;
2 |
3 | import net.minecraft.nbt.NBTTagDouble;
4 |
5 | /**
6 | * DoubleTag wrapper implementation
7 | *
8 | * @author Greg (gregthegeek)
9 | * @author Jason (darkdiplomat)
10 | */
11 | public class CanaryDoubleTag extends CanaryPrimitiveTag implements DoubleTag {
12 |
13 | /**
14 | * Constructs a new wrapper for NBTTagDouble
15 | *
16 | * @param tag
17 | * the NBTTagDouble to wrap
18 | */
19 | public CanaryDoubleTag(NBTTagDouble tag) {
20 | super(tag);
21 | }
22 |
23 | /**
24 | * Constructs a new CanaryDoubleTag and associated NBTTagDouble
25 | *
26 | * @param value
27 | * the double to supply the tag
28 | */
29 | public CanaryDoubleTag(double value) {
30 | super(new NBTTagDouble(value));
31 | }
32 |
33 | /**
34 | * {@inheritDoc}
35 | */
36 | @Override
37 | public double getValue() {
38 | return getDoubleValue();
39 | }
40 |
41 | /**
42 | * {@inheritDoc}
43 | */
44 | @Override
45 | public void setValue(double value) {
46 | getHandle().b = value;
47 | }
48 |
49 | /**
50 | * {@inheritDoc}
51 | */
52 | @Override
53 | public DoubleTag copy() {
54 | return new CanaryDoubleTag((NBTTagDouble)getHandle().b());
55 | }
56 |
57 | /**
58 | * {@inheritDoc}
59 | */
60 | @Override
61 | public NBTTagDouble getHandle() {
62 | return (NBTTagDouble)tag;
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/nbt/CanaryFloatTag.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.nbt;
2 |
3 | import net.minecraft.nbt.NBTTagFloat;
4 |
5 | /**
6 | * FloatTag wrapper implementation
7 | *
8 | * @author Greg (gregthegeek)
9 | * @author Jason (darkdiplomat)
10 | */
11 | public class CanaryFloatTag extends CanaryPrimitiveTag implements FloatTag {
12 |
13 | /**
14 | * Constructs a new wrapper for NBTTagFloat
15 | *
16 | * @param tag
17 | * the NBTTagFloat to wrap
18 | */
19 | public CanaryFloatTag(NBTTagFloat tag) {
20 | super(tag);
21 | }
22 |
23 | /**
24 | * Constructs a new CanaryFloatTag and associated NBTTagFloat
25 | *
26 | * @param value
27 | * the float to supply the tag
28 | */
29 | public CanaryFloatTag(float value) {
30 | super(new NBTTagFloat(value));
31 | }
32 |
33 | /**
34 | * {@inheritDoc}
35 | */
36 | @Override
37 | public float getValue() {
38 | return getFloatValue();
39 | }
40 |
41 | /**
42 | * {@inheritDoc}
43 | */
44 | @Override
45 | public void setValue(float value) {
46 | getHandle().b = value;
47 | }
48 |
49 | /**
50 | * {@inheritDoc}
51 | */
52 | @Override
53 | public FloatTag copy() {
54 | return new CanaryFloatTag((NBTTagFloat) getHandle().b());
55 | }
56 |
57 | /**
58 | * {@inheritDoc}
59 | */
60 | @Override
61 | public NBTTagFloat getHandle() {
62 | return (NBTTagFloat) tag;
63 | }
64 |
65 | }
66 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/nbt/CanaryIntArrayTag.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.nbt;
2 |
3 | import net.minecraft.nbt.NBTTagIntArray;
4 |
5 | /**
6 | * IntArrayTag wrapper implementation
7 | *
8 | * @author Greg (gregthegeek)
9 | * @author Jason (darkdiplomat)
10 | */
11 | public class CanaryIntArrayTag extends CanaryBaseTag implements IntArrayTag {
12 |
13 | /**
14 | * Constructs a new wrapper for NBTTagIntArray
15 | *
16 | * @param tag
17 | * the NBTTagIntArray to wrap
18 | */
19 | public CanaryIntArrayTag(NBTTagIntArray tag) {
20 | super(tag);
21 | }
22 |
23 | /**
24 | * Constructs a new CanaryIntArrayTag and associated NBTTagIntArray
25 | *
26 | * @param value
27 | * the int array to supply the tag
28 | */
29 | public CanaryIntArrayTag(int[] value) {
30 | super(new NBTTagIntArray(value));
31 | }
32 |
33 | /**
34 | * {@inheritDoc}
35 | */
36 | @Override
37 | public int[] getValue() {
38 | return getHandle().b;
39 | }
40 |
41 | /**
42 | * {@inheritDoc}
43 | */
44 | @Override
45 | public void setValue(int[] value) {
46 | getHandle().b = value;
47 | }
48 |
49 | /**
50 | * {@inheritDoc}
51 | */
52 | @Override
53 | public IntArrayTag copy() {
54 | return new CanaryIntArrayTag((NBTTagIntArray) getHandle().b());
55 | }
56 |
57 | /**
58 | * {@inheritDoc}
59 | */
60 | @Override
61 | public NBTTagIntArray getHandle() {
62 | return (NBTTagIntArray) tag;
63 | }
64 |
65 | }
66 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/nbt/CanaryIntTag.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.nbt;
2 |
3 | import net.minecraft.nbt.NBTTagInt;
4 |
5 | /**
6 | * IntTag wrapper implementation
7 | *
8 | * @author Greg (gregthegeek)
9 | * @author Jason (darkdiplomat)
10 | */
11 | public class CanaryIntTag extends CanaryPrimitiveTag implements IntTag {
12 |
13 | /**
14 | * Constructs a new wrapper for NBTTagInt
15 | *
16 | * @param tag
17 | * the NBTTagInt to wrap
18 | */
19 | public CanaryIntTag(NBTTagInt tag) {
20 | super(tag);
21 | }
22 |
23 | /**
24 | * Constructs a new CanaryIntTag and associated NBTTagInt
25 | *
26 | * @param value
27 | * the int to supply the tag
28 | */
29 | public CanaryIntTag(int value) {
30 | super(new NBTTagInt(value));
31 | }
32 |
33 | /**
34 | * {@inheritDoc}
35 | */
36 | @Override
37 | public int getValue() {
38 | return getIntValue();
39 | }
40 |
41 | /**
42 | * {@inheritDoc}
43 | */
44 | @Override
45 | public void setValue(int value) {
46 | getHandle().b = value;
47 | }
48 |
49 | /**
50 | * {@inheritDoc}
51 | */
52 | @Override
53 | public IntTag copy() {
54 | return new CanaryIntTag((NBTTagInt) getHandle().b());
55 | }
56 |
57 | /**
58 | * {@inheritDoc}
59 | */
60 | @Override
61 | public NBTTagInt getHandle() {
62 | return (NBTTagInt) tag;
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/nbt/CanaryLongTag.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.nbt;
2 |
3 | import net.minecraft.nbt.NBTTagLong;
4 |
5 | /**
6 | * LongTag wrapper implementation
7 | *
8 | * @author Greg (gregthegeek)
9 | * @author Jason (darkdiplomat)
10 | */
11 | public class CanaryLongTag extends CanaryPrimitiveTag implements LongTag {
12 |
13 | /**
14 | * Constructs a new wrapper for NBTTagLong
15 | *
16 | * @param tag
17 | * the NBTTagLong to wrap
18 | */
19 | public CanaryLongTag(NBTTagLong tag) {
20 | super(tag);
21 | }
22 |
23 | /**
24 | * Constructs a new CanaryLongTag and associated NBTTagLong
25 | *
26 | * @param value
27 | * the long to supply the tag
28 | */
29 | public CanaryLongTag(long value) {
30 | super(new NBTTagLong(value));
31 | }
32 |
33 | /**
34 | * {@inheritDoc}
35 | */
36 | @Override
37 | public long getValue() {
38 | return getLongValue();
39 | }
40 |
41 | /**
42 | * {@inheritDoc}
43 | */
44 | @Override
45 | public void setValue(long value) {
46 | getHandle().b = value;
47 | }
48 |
49 | /**
50 | * {@inheritDoc}
51 | */
52 | @Override
53 | public LongTag copy() {
54 | return new CanaryLongTag((NBTTagLong) getHandle().b());
55 | }
56 |
57 | /**
58 | * {@inheritDoc}
59 | */
60 | @Override
61 | public NBTTagLong getHandle() {
62 | return (NBTTagLong) tag;
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/nbt/CanaryPrimitiveTag.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.nbt;
2 |
3 | import net.minecraft.nbt.NBTBase;
4 |
5 | /**
6 | * Cause, you know, I am lazy and this makes it so I only have to update these methods 1 time
7 | *
8 | * @author Jason (darkdiplomat)
9 | */
10 | public abstract class CanaryPrimitiveTag extends CanaryBaseTag implements PrimitiveTag {
11 |
12 | protected CanaryPrimitiveTag(NBTBase.NBTPrimitive tag) {
13 | super(tag);
14 | }
15 |
16 | @Override
17 | public long getLongValue() {
18 | return getHandle().c();
19 | }
20 |
21 | @Override
22 | public int getIntValue() {
23 | return getHandle().d();
24 | }
25 |
26 | @Override
27 | public short getShortValue() {
28 | return getHandle().e();
29 | }
30 |
31 | @Override
32 | public byte getByteValue() {
33 | return getHandle().f();
34 | }
35 |
36 | @Override
37 | public double getDoubleValue() {
38 | return getHandle().g();
39 | }
40 |
41 | @Override
42 | public float getFloatValue() {
43 | return getHandle().h();
44 | }
45 |
46 | @Override
47 | protected NBTBase.NBTPrimitive getHandle() {
48 | return (NBTBase.NBTPrimitive) tag;
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/nbt/CanaryShortTag.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.nbt;
2 |
3 | import net.minecraft.nbt.NBTTagShort;
4 |
5 | /**
6 | * ShortTag wrapper implementation
7 | *
8 | * @author Greg (gregthegeek)
9 | * @author Jason (darkdiplomat)
10 | */
11 | public class CanaryShortTag extends CanaryPrimitiveTag implements ShortTag {
12 |
13 | /**
14 | * Constructs a new wrapper for NBTTagShort
15 | *
16 | * @param tag
17 | * the NBTTagShort to wrap
18 | */
19 | public CanaryShortTag(NBTTagShort tag) {
20 | super(tag);
21 | }
22 |
23 | /**
24 | * Constructs a new CanaryShortTag and associated NBTTagShort
25 | *
26 | * @param value
27 | * the short to supply the tag
28 | */
29 | public CanaryShortTag(short value) {
30 | super(new NBTTagShort(value));
31 | }
32 |
33 | /**
34 | * {@inheritDoc}
35 | */
36 | @Override
37 | public short getValue() {
38 | return getShortValue();
39 | }
40 |
41 | /**
42 | * {@inheritDoc}
43 | */
44 | @Override
45 | public void setValue(short value) {
46 | getHandle().b = value;
47 | }
48 |
49 | /**
50 | * {@inheritDoc}
51 | */
52 | @Override
53 | public ShortTag copy() {
54 | return new CanaryShortTag((NBTTagShort) getHandle().b());
55 | }
56 |
57 | /**
58 | * {@inheritDoc}
59 | */
60 | @Override
61 | public NBTTagShort getHandle() {
62 | return (NBTTagShort) tag;
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/nbt/CanaryStringTag.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.nbt;
2 |
3 | import net.minecraft.nbt.NBTTagString;
4 |
5 | /**
6 | * StringTag wrapper implementation
7 | *
8 | * @author Greg (gregthegeek)
9 | * @author Jason (darkdiplomat)
10 | */
11 | public class CanaryStringTag extends CanaryBaseTag implements StringTag {
12 |
13 | /**
14 | * Constructs a new wrapper for NBTTagString
15 | *
16 | * @param tag
17 | * the NBTTagString to wrap
18 | */
19 | public CanaryStringTag(NBTTagString tag) {
20 | super(tag);
21 | }
22 |
23 | /**
24 | * Constructs a new CanaryStringTag and associated NBTTagString
25 | *
26 | * @param value
27 | * the string to supply the tag
28 | */
29 | public CanaryStringTag(String value) {
30 | super(new NBTTagString(value));
31 | }
32 |
33 | /**
34 | * {@inheritDoc}
35 | */
36 | @Override
37 | public String getValue() {
38 | return getHandle().b;
39 | }
40 |
41 | /**
42 | * {@inheritDoc}
43 | */
44 | @Override
45 | public void setValue(String value) {
46 | getHandle().b = value;
47 | }
48 |
49 | /**
50 | * {@inheritDoc}
51 | */
52 | @Override
53 | public StringTag copy() {
54 | return new CanaryStringTag((NBTTagString) getHandle().b());
55 | }
56 |
57 | /**
58 | * {@inheritDoc}
59 | */
60 | @Override
61 | public NBTTagString getHandle() {
62 | return (NBTTagString) tag;
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/nbt/ListTagIterator.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.nbt;
2 |
3 | import net.minecraft.nbt.NBTBase;
4 |
5 | import java.util.Iterator;
6 |
7 | /**
8 | * Magic
9 | *
10 | * @param
11 | *
12 | * @author Jason (darkdiplomat)
13 | */
14 | class ListTagIterator implements Iterator {
15 | protected Iterator> nativeIterator;
16 |
17 | ListTagIterator(Iterator> nativeIterator) {
18 | this.nativeIterator = nativeIterator;
19 | }
20 |
21 | @Override
22 | public boolean hasNext() {
23 | return nativeIterator.hasNext();
24 | }
25 |
26 | @SuppressWarnings("unchecked")
27 | @Override
28 | public E next() {
29 | return (E) CanaryBaseTag.wrap((NBTBase) nativeIterator.next());
30 | }
31 |
32 | @Override
33 | public void remove() {
34 | nativeIterator.remove();
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/nbt/ListTagListIterator.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.nbt;
2 |
3 | import net.minecraft.nbt.NBTBase;
4 |
5 | import java.util.ListIterator;
6 |
7 | /**
8 | * Even more magic
9 | *
10 | * @param
11 | *
12 | * @author Jason (darkdiplomat)
13 | */
14 | class ListTagListIterator extends ListTagIterator implements ListIterator {
15 |
16 | ListTagListIterator(ListIterator> nativeListIterator) {
17 | super(nativeListIterator);
18 | }
19 |
20 | @SuppressWarnings("unchecked")
21 | @Override
22 | public boolean hasPrevious() {
23 | return ((ListIterator) nativeIterator).hasPrevious();
24 | }
25 |
26 | @SuppressWarnings("unchecked")
27 | @Override
28 | public E previous() {
29 | return (E) CanaryBaseTag.wrap((NBTBase) ((ListIterator) nativeIterator).previous());
30 | }
31 |
32 | @SuppressWarnings("unchecked")
33 | @Override
34 | public int nextIndex() {
35 | return ((ListIterator) nativeIterator).nextIndex();
36 | }
37 |
38 | @SuppressWarnings("unchecked")
39 | @Override
40 | public int previousIndex() {
41 | return ((ListIterator) nativeIterator).previousIndex();
42 | }
43 |
44 | @SuppressWarnings("unchecked")
45 | @Override
46 | public void set(E e) {
47 | ((ListIterator) nativeIterator).set((E) ((CanaryBaseTag) e).getHandle());
48 | }
49 |
50 | @SuppressWarnings("unchecked")
51 | @Override
52 | public void add(E e) {
53 | ((ListIterator) nativeIterator).set((E) ((CanaryBaseTag) e).getHandle());
54 | }
55 |
56 | }
57 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/packet/CanaryPacket.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.packet;
2 |
3 | public class CanaryPacket implements net.canarymod.api.packet.Packet {
4 |
5 | protected final net.minecraft.network.Packet packet;
6 |
7 | public CanaryPacket(net.minecraft.network.Packet packet) {
8 | this.packet = packet;
9 | }
10 |
11 | @Override
12 | public int getPacketSize() {
13 | //return this.packet.();
14 | return 0; // Packet Size Unknown
15 | }
16 |
17 | @Override
18 | public int getPacketId() {
19 | //return this.packet.n();
20 | return 0; // Packet ID unknown
21 | }
22 |
23 | public net.minecraft.network.Packet getPacket() {
24 | return this.packet;
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/scoreboard/CanaryScore.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.scoreboard;
2 |
3 | import net.minecraft.scoreboard.ServerScoreboard;
4 |
5 | import java.util.List;
6 |
7 | /**
8 | * @author Somners
9 | */
10 | public class CanaryScore implements Score {
11 |
12 | private net.minecraft.scoreboard.Score handle;
13 |
14 | public CanaryScore(net.minecraft.scoreboard.Score handle) {
15 | this.handle = handle;
16 | }
17 |
18 | @Override
19 | public void addToScore(int toAdd) {
20 | handle.a(toAdd);
21 | }
22 |
23 | @Override
24 | public void removeFromScore(int toRemove) {
25 | handle.b(toRemove);
26 | }
27 |
28 | @Override
29 | public void setScore(int toSet) {
30 | handle.c(toSet);
31 | }
32 |
33 | @Override
34 | public int getScore() {
35 | return handle.c();
36 | }
37 |
38 | @Override
39 | public ScoreObjective getScoreObjective() {
40 | return handle.d().getCanaryScoreObjective();
41 | }
42 |
43 | @Override
44 | public Scoreboard getScoreboard() {
45 | return ((ServerScoreboard) handle.f()).getCanaryScoreboard();
46 | }
47 |
48 | @Override
49 | public void setReadOnlyScore(List list) {
50 | this.setScore(this.getScoreObjective().getScoreObjectiveCriteria().getScore(list));
51 | }
52 |
53 | @Override
54 | public String getName() {
55 | return handle.e();
56 | }
57 |
58 | @Override
59 | public void update() {
60 | handle.f().a(handle);
61 | }
62 |
63 | }
64 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/scoreboard/CanaryScoreDummyCriteria.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.scoreboard;
2 |
3 | import java.util.List;
4 |
5 | /**
6 | * @author Somners
7 | */
8 | public class CanaryScoreDummyCriteria implements ScoreDummyCriteria {
9 |
10 | private net.minecraft.scoreboard.ScoreDummyCriteria handle;
11 |
12 | public CanaryScoreDummyCriteria(net.minecraft.scoreboard.ScoreDummyCriteria handle) {
13 | this.handle = handle;
14 | }
15 |
16 | @Override
17 | public String getProtocolName() {
18 | return handle.a();
19 | }
20 |
21 | @Override
22 | public int getScore(List list) {
23 | return handle.a(list);
24 | }
25 |
26 | @Override
27 | public boolean isReadOnly() {
28 | return handle.b();
29 | }
30 |
31 | public net.minecraft.scoreboard.ScoreDummyCriteria getHandle() {
32 | return handle;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/scoreboard/CanaryScoreHealthCriteria.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.scoreboard;
2 |
3 | import java.util.List;
4 |
5 | /**
6 | * @author Somners
7 | */
8 | public class CanaryScoreHealthCriteria implements ScoreHealthCriteria {
9 |
10 | private net.minecraft.scoreboard.ScoreHealthCriteria handle;
11 |
12 | public CanaryScoreHealthCriteria(net.minecraft.scoreboard.ScoreHealthCriteria handle) {
13 | this.handle = handle;
14 | }
15 |
16 | @Override
17 | public String getProtocolName() {
18 | return handle.a();
19 | }
20 |
21 | @Override
22 | public int getScore(List list) {
23 | return handle.a(list);
24 | }
25 |
26 | @Override
27 | public boolean isReadOnly() {
28 | return handle.b();
29 | }
30 |
31 | public net.minecraft.scoreboard.ScoreHealthCriteria getHandle() {
32 | return handle;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/scoreboard/ScoreCanaryCriteria.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.scoreboard;
2 |
3 | import java.util.List;
4 |
5 | /**
6 | * Our implementation of the notchian code for plugin use.
7 | *
8 | * @author Somners
9 | */
10 | public class ScoreCanaryCriteria extends net.minecraft.scoreboard.ScoreDummyCriteria {
11 |
12 | private ScoreObjectiveCriteria criteria;
13 |
14 | public ScoreCanaryCriteria(ScoreObjectiveCriteria criteria) {
15 | super(criteria.getProtocolName());
16 | this.criteria = criteria;
17 | }
18 |
19 | @Override
20 | public int a(List list) {
21 | return criteria.getScore(list);
22 | }
23 |
24 | @Override
25 | public boolean b() {
26 | return criteria.isReadOnly();
27 | }
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/statistics/CanaryAchievement.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.statistics;
2 |
3 | /**
4 | * Achievement wrapper
5 | *
6 | * @author Jason (darkdiplomat)
7 | */
8 | public class CanaryAchievement extends CanaryStat implements Achievement {
9 | /**
10 | * Constructs a new StatBase wrapper
11 | *
12 | * @param statbase
13 | * the StatBase to wrap
14 | */
15 | public CanaryAchievement(net.minecraft.stats.Achievement achievement) {
16 | super(achievement);
17 | }
18 |
19 | /**
20 | * {@inheritDoc}
21 | */
22 | @Override
23 | public String getDescription() {
24 | return getHandle().k;
25 | }
26 |
27 | /**
28 | * {@inheritDoc}
29 | */
30 | @Override
31 | public Achievement getParent() {
32 | return getHandle().c.getCanaryAchievement();
33 | }
34 |
35 | /**
36 | * {@inheritDoc}
37 | */
38 | @Override
39 | public boolean isSpecial() {
40 | return false;
41 | }
42 |
43 | public final net.minecraft.stats.Achievement getHandle() {
44 | return (net.minecraft.stats.Achievement) super.getHandle();
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/statistics/CanaryStat.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.statistics;
2 |
3 | import net.minecraft.stats.StatBase;
4 |
5 | /**
6 | * Stat wrapper implementation
7 | *
8 | * @author Jason (darkdiplomat)
9 | */
10 | public class CanaryStat implements Stat {
11 | private StatBase statbase;
12 |
13 | /**
14 | * Constructs a new StatBase wrapper
15 | *
16 | * @param statbase
17 | * the StatBase to wrap
18 | */
19 | public CanaryStat(StatBase statbase) {
20 | this.statbase = statbase;
21 | }
22 |
23 | /**
24 | * {@inheritDoc}
25 | */
26 | @Override
27 | public String getId() {
28 | return getHandle().e;
29 | }
30 |
31 | /**
32 | * {@inheritDoc}
33 | */
34 | @Override
35 | public String getName() {
36 | return statbase.toString();
37 | }
38 |
39 | /**
40 | * {@inheritDoc}
41 | */
42 | @Override
43 | public boolean isIndependent() {
44 | return statbase.f;
45 | }
46 |
47 | public StatBase getHandle() {
48 | return statbase;
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/world/blocks/CanaryComparator.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.world.blocks;
2 |
3 | import net.minecraft.tileentity.TileEntityComparator;
4 |
5 | /**
6 | * Comparator wrapper implementation
7 | *
8 | * @author Jason (darkdiplomat)
9 | */
10 | public class CanaryComparator extends CanaryTileEntity implements Comparator {
11 |
12 | /**
13 | * Constructs a new wrapper for TileEntityComparator
14 | *
15 | * @param tileentity
16 | * the TileEntityComparator wrapper
17 | */
18 | public CanaryComparator(TileEntityComparator tileentity) {
19 | super(tileentity);
20 | }
21 |
22 | /**
23 | * {@inheritDoc}
24 | */
25 | @Override
26 | public int getOutputSignal() {
27 | return getTileEntity().b();
28 | }
29 |
30 | /**
31 | * {@inheritDoc}
32 | */
33 | @Override
34 | public void setOutputSignal(int signal) {
35 | getTileEntity().a(signal);
36 | }
37 |
38 | /**
39 | * {@inheritDoc}
40 | */
41 | @Override
42 | public TileEntityComparator getTileEntity() {
43 | return (TileEntityComparator) tileentity;
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/world/blocks/CanaryDaylightDetector.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.world.blocks;
2 |
3 | import net.minecraft.tileentity.TileEntityDaylightDetector;
4 |
5 | /**
6 | * DaylightDetector wrapper implementation
7 | *
8 | * @author Jason (darkdiplomat)
9 | */
10 | public class CanaryDaylightDetector extends CanaryTileEntity implements DaylightDetector {
11 |
12 | /**
13 | * Constructs a new wrapper for TileEntityDaylightDetector
14 | *
15 | * @param tileentity
16 | * the TileEntityDaylightDetector
17 | */
18 | public CanaryDaylightDetector(TileEntityDaylightDetector tileentity) {
19 | super(tileentity);
20 | }
21 |
22 | /**
23 | * {@inheritDoc}
24 | */
25 | @Override
26 | public TileEntityDaylightDetector getTileEntity() {
27 | return (TileEntityDaylightDetector) tileentity;
28 | }
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/world/blocks/CanaryDropper.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.world.blocks;
2 |
3 | import net.minecraft.tileentity.TileEntityDropper;
4 |
5 | /**
6 | * Dropper wrapper implementation
7 | *
8 | * @author Jason (darkdiplomat)
9 | */
10 | public class CanaryDropper extends CanaryDispenser implements Dropper {
11 |
12 | /**
13 | * Constructs a new wrapper for TileEntityDropper
14 | *
15 | * @param tileentity
16 | * the TileEntityDropper to wrap
17 | */
18 | public CanaryDropper(TileEntityDropper tileentity) {
19 | super(tileentity);
20 | }
21 |
22 | /**
23 | * {@inheritDoc}
24 | */
25 | @Override
26 | public TileEntityDropper getTileEntity() {
27 | return (TileEntityDropper) tileentity;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/world/blocks/CanaryJukebox.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.world.blocks;
2 |
3 | import net.canarymod.api.inventory.CanaryItem;
4 | import net.canarymod.api.inventory.Item;
5 | import net.minecraft.block.BlockJukebox.TileEntityJukebox;
6 | import net.minecraft.item.ItemStack;
7 |
8 | /**
9 | * Jukebox wrapper implementation
10 | *
11 | * @author Jason (darkdiplomat)
12 | */
13 | public class CanaryJukebox extends CanaryTileEntity implements Jukebox {
14 |
15 | /**
16 | * Constructs a new wrapper for TileEntityRecordPlayer
17 | *
18 | * @param tileentity
19 | * the TileEntityRecordPlayer to be wrapped
20 | */
21 | public CanaryJukebox(TileEntityJukebox tileentity) {
22 | super(tileentity);
23 | }
24 |
25 | /**
26 | * {@inheritDoc}
27 | */
28 | @Override
29 | public Item getDisc() {
30 | ItemStack disc = getTileEntity().a();
31 | return disc == null ? null : disc.getCanaryItem();
32 | }
33 |
34 | /**
35 | * {@inheritDoc}
36 | */
37 | @Override
38 | public void setDisc(Item disc) {
39 | if (disc != null && (disc.getId() < 2256 || disc.getId() > 2267)) {
40 | return;
41 | }
42 | getTileEntity().a(disc == null ? null : ((CanaryItem) disc).getHandle());
43 | }
44 |
45 | /**
46 | * {@inheritDoc}
47 | */
48 | @Override
49 | public TileEntityJukebox getTileEntity() {
50 | return (TileEntityJukebox) tileentity;
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/world/blocks/CanaryLockableTileEntity.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.world.blocks;
2 |
3 | import net.canarymod.NotYetImplementedException;
4 | import net.canarymod.api.inventory.CanaryBlockInventory;
5 | import net.minecraft.inventory.IInventory;
6 | import net.minecraft.tileentity.TileEntityLockable;
7 | import net.minecraft.world.LockCode;
8 |
9 | /**
10 | * TileEntityLockable wrapper implementation
11 | *
12 | * @author Jason Jones (darkdiplomat)
13 | */
14 | public abstract class CanaryLockableTileEntity extends CanaryBlockInventory implements LockableTileEntity {
15 |
16 | public CanaryLockableTileEntity(IInventory inventory) {
17 | super(inventory);
18 | }
19 |
20 | @Override
21 | public String getCode() {
22 | return getLockCode().b();
23 | }
24 |
25 | @Override
26 | public void setCode(String s) {
27 | throw new NotYetImplementedException("setCode is not yet implemented for LockableTileEntity");
28 | }
29 |
30 | @Override
31 | public boolean hasCodeSet() {
32 | return !getLockCode().a();
33 | }
34 |
35 | LockCode getLockCode() {
36 | return ((TileEntityLockable)getTileEntity()).i();
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/world/blocks/CanaryMapColor.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.world.blocks;
2 |
3 | /**
4 | * MapColor wrapper implementation
5 | *
6 | * @author Jason Jones (darkdiplomat)
7 | */
8 | public class CanaryMapColor implements MapColor {
9 | private net.minecraft.block.material.MapColor nmsMapColor;
10 |
11 | public CanaryMapColor(net.minecraft.block.material.MapColor nmsMapColor) {
12 | this.nmsMapColor = nmsMapColor;
13 | }
14 |
15 | @Override
16 | public int getIndex() {
17 | return nmsMapColor.L;
18 | }
19 |
20 | @Override
21 | public int getValue() {
22 | return nmsMapColor.M;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/world/blocks/CanaryMobSpawner.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.world.blocks;
2 |
3 | import net.canarymod.api.MobSpawnerLogic;
4 | import net.minecraft.tileentity.TileEntity;
5 | import net.minecraft.tileentity.TileEntityMobSpawner;
6 |
7 | public class CanaryMobSpawner extends CanaryTileEntity implements MobSpawner {
8 |
9 | private MobSpawnerLogic logic = ((TileEntityMobSpawner) this.tileentity).b().logic;
10 |
11 | public CanaryMobSpawner(TileEntityMobSpawner tileentity) {
12 | super(tileentity);
13 | }
14 |
15 | /**
16 | * {@inheritDoc}
17 | */
18 | @Override
19 | public MobSpawnerLogic getLogic() {
20 | return logic;
21 | }
22 |
23 | /**
24 | * {@inheritDoc}
25 | */
26 | @Override
27 | public TileEntity getTileEntity() {
28 | return this.tileentity;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/world/blocks/properties/CanaryBlockBooleanProperty.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.world.blocks.properties;
2 |
3 | import net.minecraft.block.properties.PropertyBool;
4 |
5 | /**
6 | * PropertyBool wrapper implementation
7 | *
8 | * @author Jason Jones (darkdiplomat)
9 | */
10 | public class CanaryBlockBooleanProperty extends CanaryBlockProperty implements BlockBooleanProperty {
11 |
12 | protected CanaryBlockBooleanProperty(PropertyBool property) {
13 | super(property);
14 | }
15 |
16 | @Override
17 | public boolean canApply(Boolean value) {
18 | return super.canApply(value);
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/world/blocks/properties/CanaryBlockDirectionProperty.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.world.blocks.properties;
2 |
3 | import net.canarymod.api.world.blocks.BlockFace;
4 | import net.minecraft.block.properties.PropertyDirection;
5 | import net.minecraft.util.EnumFacing;
6 |
7 | /**
8 | * PropertyDirection wrapper implementation
9 | *
10 | * @author Jason Jones (darkdiplomat)
11 | */
12 | public class CanaryBlockDirectionProperty extends CanaryBlockEnumProperty implements BlockDirectionProperty {
13 |
14 | protected CanaryBlockDirectionProperty(PropertyDirection property) {
15 | super(property);
16 | }
17 |
18 | public boolean canApply(BlockFace blockFace) {
19 | EnumFacing facing;
20 | switch(blockFace){
21 | case NORTH: facing = EnumFacing.NORTH; break;
22 | case SOUTH: facing = EnumFacing.SOUTH; break;
23 | case EAST: facing = EnumFacing.EAST; break;
24 | case WEST: facing = EnumFacing.WEST; break;
25 | case BOTTOM: facing = EnumFacing.DOWN; break;
26 | case TOP: facing = EnumFacing.UP; break;
27 | default: return false;
28 | }
29 | return getAllowedValues().contains(facing);
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/world/blocks/properties/CanaryBlockIntegerProperty.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.world.blocks.properties;
2 |
3 | import net.minecraft.block.properties.PropertyInteger;
4 |
5 | /**
6 | * PropertyInteger wrapper implementation
7 | *
8 | * @author Jason Jones (darkdiplomat)
9 | */
10 | public class CanaryBlockIntegerProperty extends CanaryBlockProperty implements BlockIntegerProperty {
11 |
12 | protected CanaryBlockIntegerProperty(PropertyInteger property) {
13 | super(property);
14 | }
15 |
16 | @Override
17 | public boolean canApply(Integer value) {
18 | return super.canApply(value);
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/api/world/position/BlockPosition.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.api.world.position;
2 |
3 | import net.minecraft.util.BlockPos;
4 |
5 | /**
6 | * A cross over for BlockPos
7 | *
8 | * @author Jason Jones (darkdiplomat)
9 | */
10 | public class BlockPosition extends Position {
11 |
12 | public BlockPosition(BlockPos blockPos) {
13 | super(blockPos.n(), blockPos.o(), blockPos.p());
14 | }
15 |
16 | public BlockPosition(int x, int y, int z) {
17 | super(x, y, z);
18 | }
19 |
20 | public BlockPosition(BlockPosition templ) {
21 | super(templ);
22 | }
23 |
24 | public BlockPosition(Position pos) {
25 | super(pos);
26 | }
27 |
28 | public BlockPosition clone() throws CloneNotSupportedException {
29 | return (BlockPosition)super.clone();
30 | }
31 |
32 | public BlockPosition copy() {
33 | try {
34 | return this.clone();
35 | }
36 | catch (CloneNotSupportedException e) {
37 | //it is supported...
38 | }
39 | return new BlockPosition(this);
40 | }
41 |
42 | public BlockPos asNative() {
43 | return new BlockPos(getBlockX(), getBlockY(), getBlockZ());
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/serialize/EnchantmentSerializer.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.serialize;
2 |
3 | import net.canarymod.CanaryDeserializeException;
4 | import net.canarymod.api.inventory.CanaryEnchantment;
5 | import net.canarymod.api.inventory.Enchantment;
6 |
7 | public class EnchantmentSerializer implements Serializer {
8 |
9 | @Override
10 | public CanaryEnchantment deserialize(String data) throws CanaryDeserializeException {
11 | try {
12 | String[] fields = data.split(";");
13 |
14 | if (fields.length != 2) {
15 | throw new CanaryDeserializeException("Could not deserialize Enchantment: Number of fields do not match expected fields (" + fields.length + "/2)", getVendor());
16 | }
17 | Enchantment.Type type = Enchantment.Type.fromId(Integer.parseInt(fields[0]));
18 | return new CanaryEnchantment(type, Short.parseShort(fields[1]));
19 | } catch (NumberFormatException e) {
20 | throw new CanaryDeserializeException("Could not deserialize Enchantment: " + e.getMessage(), getVendor());
21 | }
22 | }
23 |
24 | @Override
25 | public String serialize(CanaryEnchantment obj) {
26 | if (obj == null) {
27 | return null;
28 | }
29 | StringBuilder fields = new StringBuilder();
30 |
31 | fields.append(obj.getType().getId()).append(";").append(obj.getLevel());
32 | return fields.toString();
33 | }
34 |
35 | @Override
36 | public String getVendor() {
37 | return "CanaryMod";
38 | }
39 |
40 | @Override
41 | public String getType() {
42 | return Enchantment.class.getSimpleName();
43 | }
44 |
45 | }
46 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/util/CanaryJsonNBTUtility.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.util;
2 |
3 | import com.mojang.authlib.GameProfile;
4 | import net.canarymod.api.nbt.BaseTag;
5 | import net.canarymod.api.nbt.CanaryBaseTag;
6 | import net.canarymod.api.nbt.CanaryCompoundTag;
7 | import net.canarymod.api.nbt.CompoundTag;
8 | import net.minecraft.nbt.JsonToNBT;
9 | import net.minecraft.nbt.NBTException;
10 | import net.minecraft.nbt.NBTUtil;
11 |
12 | /**
13 | * JSON NBT Utility implementation
14 | *
15 | * @author Jason Jones (darkdiplomat)
16 | */
17 | public class CanaryJsonNBTUtility implements JsonNBTUtility {
18 |
19 | @Override
20 | public BaseTag jsonToNBT(String rawJson) {
21 | try {
22 | return CanaryBaseTag.wrap(JsonToNBT.a(rawJson));
23 | }
24 | catch (NBTException nbtex) {
25 | throw new RuntimeException(nbtex);
26 | }
27 | }
28 |
29 | @Override
30 | public String baseTagToJSON(BaseTag baseTag) {
31 | return baseTag.toString(); // WAT
32 | }
33 |
34 | public GameProfile gameProfileFromNBT(CompoundTag tag) {
35 | return NBTUtil.a(((CanaryCompoundTag)tag).getHandle());
36 | }
37 |
38 | public CompoundTag gameProfileToNBT(GameProfile profile) {
39 | return (CompoundTag)CanaryBaseTag.wrap(NBTUtil.a(new CanaryCompoundTag().getHandle(), profile));
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/util/ForwardLogHandler.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.util;
2 |
3 | import org.apache.logging.log4j.LogManager;
4 | import org.apache.logging.log4j.Logger;
5 |
6 | import java.util.Map;
7 | import java.util.concurrent.ConcurrentHashMap;
8 | import java.util.logging.ConsoleHandler;
9 | import java.util.logging.Level;
10 | import java.util.logging.LogRecord;
11 |
12 | public class ForwardLogHandler extends ConsoleHandler {
13 | private final Map cachedLoggers = new ConcurrentHashMap();
14 |
15 | private Logger getLogger(String name) {
16 | Logger logger = cachedLoggers.get(name);
17 | if (logger == null) {
18 | logger = LogManager.getLogger(name);
19 | cachedLoggers.put(name, logger);
20 | }
21 |
22 | return logger;
23 | }
24 |
25 | @Override
26 | public void publish(LogRecord record) {
27 | Logger logger = getLogger(record.getLoggerName());
28 | Throwable exception = record.getThrown();
29 | Level level = record.getLevel();
30 | String message = getFormatter().formatMessage(record);
31 |
32 | if (level == Level.SEVERE) {
33 | logger.error(message, exception);
34 | } else if (level == Level.WARNING) {
35 | logger.warn(message, exception);
36 | } else if (level == Level.INFO) {
37 | logger.info(message, exception);
38 | } else if (level == Level.CONFIG) {
39 | logger.debug(message, exception);
40 | } else {
41 | logger.trace(message, exception);
42 | }
43 | }
44 |
45 | @Override
46 | public void flush() {
47 | }
48 |
49 | @Override
50 | public void close() throws SecurityException {
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/main/java/net/canarymod/util/Unwrapper.java:
--------------------------------------------------------------------------------
1 | package net.canarymod.util;
2 |
3 | import net.canarymod.api.entity.CanaryEntity;
4 | import net.canarymod.api.entity.Entity;
5 | import net.canarymod.api.world.CanaryWorld;
6 | import net.canarymod.api.world.World;
7 | import net.canarymod.api.world.blocks.Block;
8 | import net.canarymod.api.world.blocks.CanaryBlock;
9 | import net.canarymod.api.world.position.BlockPosition;
10 | import net.canarymod.api.world.position.Position;
11 | import net.minecraft.block.state.IBlockState;
12 | import net.minecraft.util.BlockPos;
13 |
14 | /**
15 | * Tool for typing less casting and unwrapping
16 | *
17 | * @author Jason Jones (darkdiplomat)
18 | */
19 | public class Unwrapper {
20 |
21 | public static net.minecraft.world.World unwrap(World world) {
22 | return ((CanaryWorld)world).getHandle();
23 | }
24 |
25 | public static BlockPos unwrap(Position position) {
26 | if (position instanceof BlockPosition) {
27 | return ((BlockPosition)position).asNative();
28 | }
29 | return new BlockPosition(position).asNative();
30 | }
31 |
32 | public static IBlockState unwrap(Block block) {
33 | return ((CanaryBlock)block).getNativeState();
34 | }
35 |
36 | public static net.minecraft.entity.Entity unwrap(Entity entity) {
37 | return ((CanaryEntity)entity).getHandle();
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/block/BlockCompressedPowered.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.block;
2 |
3 | import net.canarymod.api.world.blocks.CanaryBlock;
4 | import net.canarymod.hook.world.RedstoneChangeHook;
5 | import net.minecraft.block.material.MapColor;
6 | import net.minecraft.block.state.IBlockState;
7 | import net.minecraft.creativetab.CreativeTabs;
8 | import net.minecraft.util.BlockPos;
9 | import net.minecraft.util.EnumFacing;
10 | import net.minecraft.world.IBlockAccess;
11 | import net.minecraft.world.World;
12 |
13 | public class BlockCompressedPowered extends BlockCompressed {
14 |
15 | public BlockCompressedPowered(MapColor mapcolor) {
16 | super(mapcolor);
17 | this.a(CreativeTabs.d);
18 | }
19 |
20 | public boolean g() {
21 | return true;
22 | }
23 |
24 | public int a(IBlockAccess iblockaccess, BlockPos blockpos, IBlockState iblockstate, EnumFacing enumfacing) {
25 | return 15;
26 | }
27 |
28 | // CanaryMod: pull place method in to do RedstoneChange
29 | public void c(World world, BlockPos blockpos, IBlockState iblockstate) {
30 | new RedstoneChangeHook(CanaryBlock.getPooledBlock(iblockstate, blockpos, world), 0, 15); //Can't really cancel this here...
31 | super.c(world, blockpos, iblockstate);
32 | }
33 |
34 | // CanaryMod: pull break method in to do RedstoneChange
35 | public void b(World world, BlockPos blockpos, IBlockState iblockstate) {
36 | new RedstoneChangeHook(CanaryBlock.getPooledBlock(iblockstate, blockpos, world), 15, 0); //Can't really cancel this here...
37 | super.b(world, blockpos, iblockstate);
38 | }
39 | //
40 | }
41 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/command/CommandToggleDownfall.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.command;
2 |
3 | import net.canarymod.api.world.CanaryWorld;
4 | import net.minecraft.server.MinecraftServer;
5 | import net.minecraft.world.storage.WorldInfo;
6 |
7 | public class CommandToggleDownfall extends CommandBase {
8 |
9 | public String c() {
10 | return "toggledownfall";
11 | }
12 |
13 | public int a() {
14 | return 2;
15 | }
16 |
17 | public String c(ICommandSender icommandsender) {
18 | return "commands.downfall.usage";
19 | }
20 |
21 | public void a(ICommandSender icommandsender, String[] astring) throws CommandException {
22 | //this.d(); // CanaryMod: logic reimplemented below
23 | WorldInfo worldinfo = icommandsender.e().P();
24 | if (astring.length == 1) { // CanaryMod: inject world selection
25 | boolean loaded = MinecraftServer.M().worldManager.worldIsLoaded(astring[0]);
26 | if (!loaded) {
27 | a(icommandsender, this, "No world loaded of Name: '%s'", new Object[]{astring[0]});
28 | return;
29 | }
30 | worldinfo = ((CanaryWorld)MinecraftServer.M().worldManager.getWorld(astring[0], false)).getHandle().P();
31 | }
32 | worldinfo.b(!worldinfo.p());
33 |
34 | a(icommandsender, this, "commands.downfall.success", new Object[0]);
35 | }
36 |
37 | /* CanaryMod: Logic disabled and moved above
38 | protected void d() {
39 | WorldInfo worldinfo = MinecraftServer.M().c[0].P();
40 |
41 | worldinfo.b(!worldinfo.p());
42 | }
43 | */
44 | }
45 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/command/server/CommandSaveOff.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.command.server;
2 |
3 | import net.canarymod.api.world.CanaryWorld;
4 | import net.minecraft.command.CommandBase;
5 | import net.minecraft.command.CommandException;
6 | import net.minecraft.command.ICommandSender;
7 | import net.minecraft.server.MinecraftServer;
8 | import net.minecraft.world.WorldServer;
9 |
10 | public class CommandSaveOff extends CommandBase {
11 |
12 | public String c() {
13 | return "save-off";
14 | }
15 |
16 | public String c(ICommandSender icommandsender) {
17 | return "commands.save-off.usage";
18 | }
19 |
20 | public void a(ICommandSender icommandsender, String[] astring) throws CommandException {
21 | MinecraftServer minecraftserver = MinecraftServer.M();
22 | boolean flag0 = false;
23 |
24 | // CanaryMod: Fix for MultiWorld
25 | for (net.canarymod.api.world.World w : minecraftserver.worldManager.getAllWorlds()) {
26 | WorldServer worldserver = (WorldServer)((CanaryWorld)w).getHandle();
27 |
28 | if (worldserver != null && !worldserver.c) {
29 | worldserver.c = true;
30 | flag0 = true;
31 | }
32 | }
33 |
34 | if (flag0) {
35 | a(icommandsender, this, "commands.save.disabled", new Object[0]);
36 | }
37 | else {
38 | throw new CommandException("commands.save-off.alreadyOff", new Object[0]);
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/command/server/CommandSaveOn.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.command.server;
2 |
3 | import net.canarymod.api.world.CanaryWorld;
4 | import net.minecraft.command.CommandBase;
5 | import net.minecraft.command.CommandException;
6 | import net.minecraft.command.ICommandSender;
7 | import net.minecraft.server.MinecraftServer;
8 | import net.minecraft.world.WorldServer;
9 |
10 | public class CommandSaveOn extends CommandBase {
11 |
12 | public String c() {
13 | return "save-on";
14 | }
15 |
16 | public String c(ICommandSender icommandsender) {
17 | return "commands.save-on.usage";
18 | }
19 |
20 | public void a(ICommandSender icommandsender, String[] astring) throws CommandException {
21 | MinecraftServer minecraftserver = MinecraftServer.M();
22 | boolean flag0 = false;
23 |
24 | // CanaryMod: Fix for MultiWorld
25 | for (net.canarymod.api.world.World w : minecraftserver.worldManager.getAllWorlds()) {
26 | WorldServer worldserver = (WorldServer) ((CanaryWorld) w).getHandle();
27 |
28 | if (worldserver != null && worldserver.c) {
29 | worldserver.c = false;
30 | flag0 = true;
31 | }
32 | }
33 |
34 | if (flag0) {
35 | a(icommandsender, this, "commands.save.enabled", new Object[0]);
36 | } else {
37 | throw new CommandException("commands.save-on.alreadyOn", new Object[0]);
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/command/server/CommandStop.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.command.server;
2 |
3 | import net.minecraft.command.CommandBase;
4 | import net.minecraft.command.CommandException;
5 | import net.minecraft.command.ICommandSender;
6 | import net.minecraft.server.MinecraftServer;
7 |
8 | public class CommandStop extends CommandBase {
9 |
10 | public String c() {
11 | return "stop";
12 | }
13 |
14 | public String c(ICommandSender icommandsender) {
15 | return "commands.stop.usage";
16 | }
17 |
18 | public void a(ICommandSender icommandsender, String[] astring) throws CommandException {
19 | /* CanaryMod: Remove code due to MultiWorld
20 | if (MinecraftServer.M().c != null) {
21 | a(icommandsender, this, "commands.stop.start", new Object[0]);
22 | }
23 | */
24 |
25 | MinecraftServer.M().u();
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/dispenser/BehaviorProjectileDispense.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.dispenser;
2 |
3 | import net.canarymod.hook.world.DispenseHook;
4 | import net.minecraft.block.BlockDispenser;
5 | import net.minecraft.entity.Entity;
6 | import net.minecraft.entity.IProjectile;
7 | import net.minecraft.item.ItemStack;
8 | import net.minecraft.tileentity.TileEntityDispenser;
9 | import net.minecraft.util.EnumFacing;
10 | import net.minecraft.world.World;
11 |
12 |
13 | public abstract class BehaviorProjectileDispense extends BehaviorDefaultDispenseItem {
14 |
15 | public ItemStack b(IBlockSource iblocksource, ItemStack itemstack) {
16 | World world = iblocksource.i();
17 | IPosition iposition = BlockDispenser.a(iblocksource);
18 | EnumFacing enumfacing = BlockDispenser.b(iblocksource.f());
19 | IProjectile iprojectile = this.a(world, iposition);
20 |
21 | iprojectile.c((double) enumfacing.g(), (double) ((float) enumfacing.h() + 0.1F), (double) enumfacing.i(), this.b(), this.a());
22 | // CanaryMod: Dispense
23 | DispenseHook hook = (DispenseHook) new DispenseHook(((TileEntityDispenser) iblocksource.h()).getCanaryDispenser(), ((Entity) iprojectile).getCanaryEntity()).call();
24 | if (!hook.isCanceled()) {
25 | world.d((Entity) iprojectile);
26 | itemstack.a(1);
27 | }
28 | //
29 | return itemstack;
30 | }
31 |
32 | protected void a(IBlockSource iblocksource) {
33 | iblocksource.i().b(1002, iblocksource.d(), 0);
34 | }
35 |
36 | protected abstract IProjectile a(World world, IPosition iposition);
37 |
38 | protected float a() {
39 | return 6.0F;
40 | }
41 |
42 | protected float b() {
43 | return 1.1F;
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/entity/ai/EntityAIBase.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.entity.ai;
2 |
3 | import net.canarymod.api.ai.CanaryAIBase;
4 |
5 |
6 | public abstract class EntityAIBase {
7 |
8 | private int a;
9 |
10 | protected CanaryAIBase canaryAI;// CanaryMod: our variable
11 |
12 | public abstract boolean a();
13 |
14 | public boolean b() {
15 | return this.a();
16 | }
17 |
18 | public boolean i() {
19 | return true;
20 | }
21 |
22 | public void c() {}
23 |
24 | public void d() {}
25 |
26 | public void e() {}
27 |
28 | public void a(int i0) {
29 | this.a = i0;
30 | }
31 |
32 | public int j() {
33 | return this.a;
34 | }
35 |
36 | // CanaryMod: our methods
37 | public CanaryAIBase getCanaryAIBase() {
38 | return this.canaryAI;
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/entity/ai/EntityAICreeperSwell.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.entity.ai;
2 |
3 |
4 | import net.canarymod.api.ai.CanaryAICreeperSwell;
5 | import net.minecraft.entity.EntityLivingBase;
6 | import net.minecraft.entity.ai.EntityAIBase;
7 | import net.minecraft.entity.monster.EntityCreeper;
8 |
9 |
10 | public class EntityAICreeperSwell extends EntityAIBase {
11 |
12 | EntityCreeper a;
13 | EntityLivingBase b;
14 |
15 | public EntityAICreeperSwell(EntityCreeper entitycreeper) {
16 | this.a = entitycreeper;
17 | this.a(1);
18 | this.canaryAI = new CanaryAICreeperSwell(this); //CanaryMod: set our variable
19 | }
20 |
21 | public boolean a() {
22 | EntityLivingBase entitylivingbase = this.a.u();
23 |
24 | return this.a.ck() > 0 || entitylivingbase != null && this.a.h(entitylivingbase) < 9.0D;
25 | }
26 |
27 | public void c() {
28 | this.a.s().n();
29 | this.b = this.a.u();
30 | }
31 |
32 | public void d() {
33 | this.b = null;
34 | }
35 |
36 | public void e() {
37 | if (this.b == null) {
38 | this.a.a(-1);
39 | } else if (this.a.h(this.b) > 49.0D) {
40 | this.a.a(-1);
41 | } else if (!this.a.t().a(this.b)) {
42 | this.a.a(-1);
43 | } else {
44 | this.a.a(1);
45 | }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/entity/ai/EntityAIDefendVillage.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.entity.ai;
2 |
3 |
4 | import net.canarymod.api.ai.CanaryAIDefendVillage;
5 | import net.minecraft.entity.EntityLivingBase;
6 | import net.minecraft.entity.ai.EntityAITarget;
7 | import net.minecraft.entity.monster.EntityIronGolem;
8 | import net.minecraft.village.Village;
9 |
10 |
11 | public class EntityAIDefendVillage extends EntityAITarget {
12 |
13 | EntityIronGolem a;
14 | EntityLivingBase b;
15 |
16 | public EntityAIDefendVillage(EntityIronGolem entityirongolem) {
17 | super(entityirongolem, false, true);
18 | this.a = entityirongolem;
19 | this.a(1);
20 | this.canaryAI = new CanaryAIDefendVillage(this); //CanaryMod: set our variable
21 | }
22 |
23 | public boolean a() {
24 | Village village = this.a.n();
25 |
26 | if (village == null) {
27 | return false;
28 | } else {
29 | this.b = village.b((EntityLivingBase) this.a);
30 | if (!this.a(this.b, false)) {
31 | if (this.e.bb().nextInt(20) == 0) {
32 | this.b = village.c((EntityLivingBase) this.a);
33 | return this.a(this.b, false);
34 | } else {
35 | return false;
36 | }
37 | } else {
38 | return true;
39 | }
40 | }
41 | }
42 |
43 | public void c() {
44 | this.a.d(this.b);
45 | super.c();
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/entity/ai/EntityAILeapAtTarget.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.entity.ai;
2 |
3 |
4 | import net.canarymod.api.ai.CanaryAILeapAtTarget;
5 | import net.minecraft.entity.EntityLiving;
6 | import net.minecraft.entity.EntityLivingBase;
7 | import net.minecraft.entity.ai.EntityAIBase;
8 | import net.minecraft.util.MathHelper;
9 |
10 |
11 | public class EntityAILeapAtTarget extends EntityAIBase {
12 |
13 | EntityLiving a;
14 | EntityLivingBase b;
15 | float c;
16 |
17 | public EntityAILeapAtTarget(EntityLiving entityliving, float f0) {
18 | this.a = entityliving;
19 | this.c = f0;
20 | this.a(5);
21 | this.canaryAI = new CanaryAILeapAtTarget(this); //CanaryMod: set our variable
22 | }
23 |
24 | public boolean a() {
25 | this.b = this.a.u();
26 | if (this.b == null) {
27 | return false;
28 | } else {
29 | double d0 = this.a.h(this.b);
30 |
31 | return d0 >= 4.0D && d0 <= 16.0D ? (!this.a.C ? false : this.a.bb().nextInt(5) == 0) : false;
32 | }
33 | }
34 |
35 | public boolean b() {
36 | return !this.a.C;
37 | }
38 |
39 | public void c() {
40 | double d0 = this.b.s - this.a.s;
41 | double d1 = this.b.u - this.a.u;
42 | float f0 = MathHelper.a(d0 * d0 + d1 * d1);
43 |
44 | this.a.v += d0 / (double) f0 * 0.5D * 0.800000011920929D + this.a.v * 0.20000000298023224D;
45 | this.a.x += d1 / (double) f0 * 0.5D * 0.800000011920929D + this.a.x * 0.20000000298023224D;
46 | this.a.w = (double) this.c;
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/entity/ai/EntityAILookAtTradePlayer.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.entity.ai;
2 |
3 |
4 | import net.canarymod.api.ai.CanaryAILookAtTradePlayer;
5 | import net.minecraft.entity.ai.EntityAIWatchClosest;
6 | import net.minecraft.entity.passive.EntityVillager;
7 | import net.minecraft.entity.player.EntityPlayer;
8 |
9 |
10 | public class EntityAILookAtTradePlayer extends EntityAIWatchClosest {
11 |
12 | private final EntityVillager e;
13 |
14 | public EntityAILookAtTradePlayer(EntityVillager entityvillager) {
15 | super(entityvillager, EntityPlayer.class, 8.0F);
16 | this.e = entityvillager;
17 | this.canaryAI = new CanaryAILookAtTradePlayer(this); //CanaryMod: set our variable
18 | }
19 |
20 | public boolean a() {
21 | if (this.e.cm()) {
22 | this.b = this.e.u_();
23 | return true;
24 | } else {
25 | return false;
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/entity/ai/EntityAILookAtVillager.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.entity.ai;
2 |
3 |
4 | import net.canarymod.api.ai.CanaryAILookAtVillager;
5 | import net.minecraft.entity.Entity;
6 | import net.minecraft.entity.ai.EntityAIBase;
7 | import net.minecraft.entity.monster.EntityIronGolem;
8 | import net.minecraft.entity.passive.EntityVillager;
9 |
10 |
11 | public class EntityAILookAtVillager extends EntityAIBase {
12 |
13 | private EntityIronGolem a;
14 | private EntityVillager b;
15 | private int c;
16 |
17 | public EntityAILookAtVillager(EntityIronGolem entityirongolem) {
18 | this.a = entityirongolem;
19 | this.a(3);
20 | this.canaryAI = new CanaryAILookAtVillager(this); //CanaryMod: set our variable
21 | }
22 |
23 | public boolean a() {
24 | if (!this.a.o.w()) {
25 | return false;
26 | } else if (this.a.bb().nextInt(8000) != 0) {
27 | return false;
28 | } else {
29 | this.b = (EntityVillager) this.a.o.a(EntityVillager.class, this.a.aQ().b(6.0D, 2.0D, 6.0D), (Entity) this.a);
30 | return this.b != null;
31 | }
32 | }
33 |
34 | public boolean b() {
35 | return this.c > 0;
36 | }
37 |
38 | public void c() {
39 | this.c = 400;
40 | this.a.a(true);
41 | }
42 |
43 | public void d() {
44 | this.a.a(false);
45 | this.b = null;
46 | }
47 |
48 | public void e() {
49 | this.a.p().a(this.b, 30.0F, 30.0F);
50 | --this.c;
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/entity/ai/EntityAILookIdle.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.entity.ai;
2 |
3 |
4 | import net.canarymod.api.ai.CanaryAILookIdle;
5 | import net.minecraft.entity.EntityLiving;
6 | import net.minecraft.entity.ai.EntityAIBase;
7 |
8 |
9 | public class EntityAILookIdle extends EntityAIBase {
10 |
11 | private EntityLiving a;
12 | private double b;
13 | private double c;
14 | private int d;
15 |
16 | public EntityAILookIdle(EntityLiving entityliving) {
17 | this.a = entityliving;
18 | this.a(3);
19 | this.canaryAI = new CanaryAILookIdle(this); //CanaryMod: set our variable
20 | }
21 |
22 | public boolean a() {
23 | return this.a.bb().nextFloat() < 0.02F;
24 | }
25 |
26 | public boolean b() {
27 | return this.d >= 0;
28 | }
29 |
30 | public void c() {
31 | double d0 = 6.283185307179586D * this.a.bb().nextDouble();
32 |
33 | this.b = Math.cos(d0);
34 | this.c = Math.sin(d0);
35 | this.d = 20 + this.a.bb().nextInt(20);
36 | }
37 |
38 | public void e() {
39 | --this.d;
40 | this.a.p().a(this.a.s + this.b, this.a.t + (double) this.a.aR(), this.a.u + this.c, 10.0F, (float) this.a.bP());
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/entity/ai/EntityAIMoveTowardsRestriction.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.entity.ai;
2 |
3 |
4 | import net.canarymod.api.ai.CanaryAIMoveTowardsRestriction;
5 | import net.minecraft.entity.EntityCreature;
6 | import net.minecraft.entity.ai.EntityAIBase;
7 | import net.minecraft.entity.ai.RandomPositionGenerator;
8 | import net.minecraft.util.BlockPos;
9 | import net.minecraft.util.Vec3;
10 |
11 |
12 | public class EntityAIMoveTowardsRestriction extends EntityAIBase {
13 |
14 | private EntityCreature a;
15 | private double b;
16 | private double c;
17 | private double d;
18 | private double e;
19 |
20 | public EntityAIMoveTowardsRestriction(EntityCreature entitycreature, double d0) {
21 | this.a = entitycreature;
22 | this.e = d0;
23 | this.a(1);
24 | this.canaryAI = new CanaryAIMoveTowardsRestriction(this); //CanaryMod: set our variable
25 | }
26 |
27 | public boolean a() {
28 | if (this.a.ce()) {
29 | return false;
30 | } else {
31 | BlockPos blockpos = this.a.cf();
32 | Vec3 vec3 = RandomPositionGenerator.a(this.a, 16, 7, new Vec3((double) blockpos.n(), (double) blockpos.o(), (double) blockpos.p()));
33 |
34 | if (vec3 == null) {
35 | return false;
36 | } else {
37 | this.b = vec3.a;
38 | this.c = vec3.b;
39 | this.d = vec3.c;
40 | return true;
41 | }
42 | }
43 | }
44 |
45 | public boolean b() {
46 | return !this.a.s().m();
47 | }
48 |
49 | public void c() {
50 | this.a.s().a(this.b, this.c, this.d, this.e);
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/entity/ai/EntityAIOpenDoor.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.entity.ai;
2 |
3 |
4 | import net.canarymod.api.ai.CanaryAIOpenDoor;
5 | import net.minecraft.entity.EntityLiving;
6 | import net.minecraft.entity.ai.EntityAIDoorInteract;
7 |
8 |
9 | public class EntityAIOpenDoor extends EntityAIDoorInteract {
10 |
11 | boolean g;
12 | int h;
13 |
14 | public EntityAIOpenDoor(EntityLiving entityliving, boolean flag0) {
15 | super(entityliving);
16 | this.a = entityliving;
17 | this.g = flag0;
18 | this.canaryAI = new CanaryAIOpenDoor(this); //CanaryMod: set our variable
19 | }
20 |
21 | public boolean b() {
22 | return this.g && this.h > 0 && super.b();
23 | }
24 |
25 | public void c() {
26 | this.h = 20;
27 | this.c.a(this.a.o, this.b, true);
28 | }
29 |
30 | public void d() {
31 | if (this.g) {
32 | this.c.a(this.a.o, this.b, false);
33 | }
34 |
35 | }
36 |
37 | public void e() {
38 | --this.h;
39 | super.e();
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/entity/ai/EntityAIOwnerHurtByTarget.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.entity.ai;
2 |
3 |
4 | import net.canarymod.api.ai.CanaryAIOwnerHurtByTarget;
5 | import net.minecraft.entity.EntityLivingBase;
6 | import net.minecraft.entity.ai.EntityAITarget;
7 | import net.minecraft.entity.passive.EntityTameable;
8 |
9 |
10 | public class EntityAIOwnerHurtByTarget extends EntityAITarget {
11 |
12 | EntityTameable a;
13 | EntityLivingBase b;
14 | private int c;
15 |
16 | public EntityAIOwnerHurtByTarget(EntityTameable entitytameable) {
17 | super(entitytameable, false);
18 | this.a = entitytameable;
19 | this.a(1);
20 | this.canaryAI = new CanaryAIOwnerHurtByTarget(this); //CanaryMod: set our variable
21 | }
22 |
23 | public boolean a() {
24 | if (!this.a.cj()) {
25 | return false;
26 | } else {
27 | EntityLivingBase entitylivingbase = this.a.cm();
28 |
29 | if (entitylivingbase == null) {
30 | return false;
31 | } else {
32 | this.b = entitylivingbase.bc();
33 | int i0 = entitylivingbase.bd();
34 |
35 | return i0 != this.c && this.a(this.b, false) && this.a.a(this.b, entitylivingbase);
36 | }
37 | }
38 | }
39 |
40 | public void c() {
41 | this.e.d(this.b);
42 | EntityLivingBase entitylivingbase = this.a.cm();
43 |
44 | if (entitylivingbase != null) {
45 | this.c = entitylivingbase.bd();
46 | }
47 |
48 | super.c();
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/entity/ai/EntityAIOwnerHurtTarget.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.entity.ai;
2 |
3 |
4 | import net.canarymod.api.ai.CanaryAIOwnerHurtTarget;
5 | import net.minecraft.entity.EntityLivingBase;
6 | import net.minecraft.entity.ai.EntityAITarget;
7 | import net.minecraft.entity.passive.EntityTameable;
8 |
9 |
10 | public class EntityAIOwnerHurtTarget extends EntityAITarget {
11 |
12 | EntityTameable a;
13 | EntityLivingBase b;
14 | private int c;
15 |
16 | public EntityAIOwnerHurtTarget(EntityTameable entitytameable) {
17 | super(entitytameable, false);
18 | this.a = entitytameable;
19 | this.a(1);
20 | this.canaryAI = new CanaryAIOwnerHurtTarget(this); //CanaryMod: set our variable
21 | }
22 |
23 | public boolean a() {
24 | if (!this.a.cj()) {
25 | return false;
26 | } else {
27 | EntityLivingBase entitylivingbase = this.a.cm();
28 |
29 | if (entitylivingbase == null) {
30 | return false;
31 | } else {
32 | this.b = entitylivingbase.be();
33 | int i0 = entitylivingbase.bf();
34 |
35 | return i0 != this.c && this.a(this.b, false) && this.a.a(this.b, entitylivingbase);
36 | }
37 | }
38 | }
39 |
40 | public void c() {
41 | this.e.d(this.b);
42 | EntityLivingBase entitylivingbase = this.a.cm();
43 |
44 | if (entitylivingbase != null) {
45 | this.c = entitylivingbase.bf();
46 | }
47 |
48 | super.c();
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/entity/ai/EntityAIPanic.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.entity.ai;
2 |
3 |
4 | import net.canarymod.api.ai.CanaryAIPanic;
5 | import net.minecraft.entity.EntityCreature;
6 | import net.minecraft.entity.ai.EntityAIBase;
7 | import net.minecraft.entity.ai.RandomPositionGenerator;
8 | import net.minecraft.util.Vec3;
9 |
10 |
11 | public class EntityAIPanic extends EntityAIBase {
12 |
13 | private EntityCreature b;
14 | protected double a;
15 | private double c;
16 | private double d;
17 | private double e;
18 |
19 | public EntityAIPanic(EntityCreature entitycreature, double d0) {
20 | this.b = entitycreature;
21 | this.a = d0;
22 | this.a(1);
23 | this.canaryAI = new CanaryAIPanic(this); //CanaryMod: set our variable
24 | }
25 |
26 | public boolean a() {
27 | if (this.b.bc() == null && !this.b.au()) {
28 | return false;
29 | } else {
30 | Vec3 vec3 = RandomPositionGenerator.a(this.b, 5, 4);
31 |
32 | if (vec3 == null) {
33 | return false;
34 | } else {
35 | this.c = vec3.a;
36 | this.d = vec3.b;
37 | this.e = vec3.c;
38 | return true;
39 | }
40 | }
41 | }
42 |
43 | public void c() {
44 | this.b.s().a(this.c, this.d, this.e, this.a);
45 | }
46 |
47 | public boolean b() {
48 | return !this.b.s().m();
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/entity/ai/EntityAIRestrictSun.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.entity.ai;
2 |
3 |
4 | import net.canarymod.api.ai.CanaryAIRestrictSun;
5 | import net.minecraft.entity.EntityCreature;
6 | import net.minecraft.entity.ai.EntityAIBase;
7 | import net.minecraft.pathfinding.PathNavigateGround;
8 |
9 |
10 | public class EntityAIRestrictSun extends EntityAIBase {
11 |
12 | private EntityCreature a;
13 |
14 | public EntityAIRestrictSun(EntityCreature entitycreature) {
15 | this.a = entitycreature;
16 | this.canaryAI = new CanaryAIRestrictSun(this); //CanaryMod: set our variable
17 | }
18 |
19 | public boolean a() {
20 | return this.a.o.w();
21 | }
22 |
23 | public void c() {
24 | ((PathNavigateGround) this.a.s()).e(true);
25 | }
26 |
27 | public void d() {
28 | ((PathNavigateGround) this.a.s()).e(false);
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/entity/ai/EntityAISit.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.entity.ai;
2 |
3 |
4 | import net.canarymod.api.ai.CanaryAISit;
5 | import net.minecraft.entity.EntityLivingBase;
6 | import net.minecraft.entity.ai.EntityAIBase;
7 | import net.minecraft.entity.passive.EntityTameable;
8 |
9 |
10 | public class EntityAISit extends EntityAIBase {
11 |
12 | private EntityTameable a;
13 | private boolean b;
14 |
15 | public EntityAISit(EntityTameable entitytameable) {
16 | this.a = entitytameable;
17 | this.a(5);
18 | this.canaryAI = new CanaryAISit(this); //CanaryMod: set our variable
19 | }
20 |
21 | public boolean a() {
22 | if (!this.a.cj()) {
23 | return false;
24 | } else if (this.a.V()) {
25 | return false;
26 | } else if (!this.a.C) {
27 | return false;
28 | } else {
29 | EntityLivingBase entitylivingbase = this.a.cm();
30 |
31 | return entitylivingbase == null ? true : (this.a.h(entitylivingbase) < 144.0D && entitylivingbase.bc() != null ? false : this.b);
32 | }
33 | }
34 |
35 | public void c() {
36 | this.a.s().n();
37 | this.a.n(true);
38 | }
39 |
40 | public void d() {
41 | this.a.n(false);
42 | }
43 |
44 | public void a(boolean flag0) {
45 | this.b = flag0;
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/entity/ai/EntityAISwimming.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.entity.ai;
2 |
3 |
4 | import net.canarymod.api.ai.CanaryAISwimming;
5 | import net.minecraft.entity.EntityLiving;
6 | import net.minecraft.entity.ai.EntityAIBase;
7 | import net.minecraft.pathfinding.PathNavigateGround;
8 |
9 |
10 | public class EntityAISwimming extends EntityAIBase {
11 |
12 | private EntityLiving a;
13 |
14 | public EntityAISwimming(EntityLiving entityliving) {
15 | this.a = entityliving;
16 | this.a(4);
17 | ((PathNavigateGround) entityliving.s()).d(true);
18 | this.canaryAI = new CanaryAISwimming(this); //CanaryMod: set our variable
19 | }
20 |
21 | public boolean a() {
22 | return this.a.V() || this.a.ab();
23 | }
24 |
25 | public void e() {
26 | if (this.a.bb().nextFloat() < 0.8F) {
27 | this.a.r().a();
28 | }
29 |
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/entity/ai/EntityAITargetNonTamed.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.entity.ai;
2 |
3 |
4 | import com.google.common.base.Predicate;
5 | import net.canarymod.api.ai.CanaryAITargetNonTamed;
6 | import net.minecraft.entity.ai.EntityAINearestAttackableTarget;
7 | import net.minecraft.entity.passive.EntityTameable;
8 |
9 |
10 | public class EntityAITargetNonTamed extends EntityAINearestAttackableTarget {
11 |
12 | private EntityTameable g;
13 |
14 | public EntityAITargetNonTamed(EntityTameable entitytameable, Class oclass0, boolean flag0, Predicate predicate) {
15 | super(entitytameable, oclass0, 10, flag0, false, predicate);
16 | this.g = entitytameable;
17 | this.canaryAI = new CanaryAITargetNonTamed(this); //CanaryMod: set our variable
18 | }
19 |
20 | public boolean a() {
21 | return !this.g.cj() && super.a();
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/entity/ai/EntityAITradePlayer.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.entity.ai;
2 |
3 |
4 | import net.canarymod.api.ai.CanaryAITradePlayer;
5 | import net.minecraft.entity.ai.EntityAIBase;
6 | import net.minecraft.entity.passive.EntityVillager;
7 | import net.minecraft.entity.player.EntityPlayer;
8 | import net.minecraft.inventory.Container;
9 |
10 |
11 | public class EntityAITradePlayer extends EntityAIBase {
12 |
13 | private EntityVillager a;
14 |
15 | public EntityAITradePlayer(EntityVillager entityvillager) {
16 | this.a = entityvillager;
17 | this.a(5);
18 | this.canaryAI = new CanaryAITradePlayer(this); //CanaryMod: set our variable
19 | }
20 |
21 | public boolean a() {
22 | if (!this.a.ai()) {
23 | return false;
24 | } else if (this.a.V()) {
25 | return false;
26 | } else if (!this.a.C) {
27 | return false;
28 | } else if (this.a.G) {
29 | return false;
30 | } else {
31 | EntityPlayer entityplayer = this.a.u_();
32 |
33 | return entityplayer == null ? false : (this.a.h(entityplayer) > 16.0D ? false : entityplayer.bi instanceof Container);
34 | }
35 | }
36 |
37 | public void c() {
38 | this.a.s().n();
39 | }
40 |
41 | public void d() {
42 | this.a.a_((EntityPlayer) null);
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/entity/ai/EntityAIWatchClosest2.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.entity.ai;
2 |
3 |
4 | import net.canarymod.api.ai.CanaryAIWatchClosest2;
5 | import net.minecraft.entity.EntityLiving;
6 | import net.minecraft.entity.ai.EntityAIWatchClosest;
7 |
8 |
9 | public class EntityAIWatchClosest2 extends EntityAIWatchClosest {
10 |
11 | public EntityAIWatchClosest2(EntityLiving entityliving, Class oclass0, float f0, float f1) {
12 | super(entityliving, oclass0, f0, f1);
13 | this.a(3);
14 | this.canaryAI = new CanaryAIWatchClosest2(this); //CanaryMod: set our variable
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/entity/ai/attributes/BaseAttribute.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.entity.ai.attributes;
2 |
3 | import net.canarymod.api.attributes.CanaryAttribute;
4 |
5 | public abstract class BaseAttribute implements IAttribute {
6 |
7 | private final IAttribute a;
8 | private final String b;
9 | private final double c;
10 | // CanaryMod: our vars
11 | protected CanaryAttribute canaryAttribute;
12 | private boolean d;
13 |
14 | protected BaseAttribute(IAttribute iattribute, String s0, double d0) {
15 | this.a = iattribute;
16 | this.b = s0;
17 | this.c = d0;
18 | if (s0 == null) {
19 | throw new IllegalArgumentException("Name cannot be null!");
20 | }
21 | this.canaryAttribute = new CanaryAttribute(this);
22 | }
23 |
24 | public String a() {
25 | return this.b;
26 | }
27 |
28 | public double b() {
29 | return this.c;
30 | }
31 |
32 | public boolean c() {
33 | return this.d;
34 | }
35 |
36 | public BaseAttribute a(boolean flag0) {
37 | this.d = flag0;
38 | return this;
39 | }
40 |
41 | public IAttribute d() {
42 | return this.a;
43 | }
44 |
45 | public int hashCode() {
46 | return this.b.hashCode();
47 | }
48 |
49 | public boolean equals(Object object) {
50 | return object instanceof IAttribute && this.b.equals(((IAttribute) object).a());
51 | }
52 |
53 | public CanaryAttribute getWrapper() {
54 | return canaryAttribute;
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/entity/ai/attributes/IAttribute.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.entity.ai.attributes;
2 |
3 | import net.canarymod.api.attributes.CanaryAttribute;
4 |
5 | public interface IAttribute {
6 |
7 | String a();
8 |
9 | double a(double d0);
10 |
11 | double b();
12 |
13 | boolean c();
14 |
15 | IAttribute d();
16 |
17 | CanaryAttribute getWrapper(); // CanaryMod
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/entity/ai/attributes/IAttributeInstance.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.entity.ai.attributes;
2 |
3 |
4 | import net.canarymod.api.attributes.CanaryModifiedAttribute;
5 |
6 | import java.util.Collection;
7 | import java.util.UUID;
8 |
9 |
10 | public interface IAttributeInstance {
11 |
12 | IAttribute a();
13 |
14 | double b();
15 |
16 | void a(double d0);
17 |
18 | Collection a(int i0);
19 |
20 | Collection c();
21 |
22 | boolean a(AttributeModifier attributemodifier);
23 |
24 | AttributeModifier a(UUID uuid);
25 |
26 | void b(AttributeModifier attributemodifier);
27 |
28 | void c(AttributeModifier attributemodifier);
29 |
30 | double e();
31 |
32 | CanaryModifiedAttribute getWrapper(); // CanaryMod
33 | }
34 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/entity/ai/attributes/RangedAttribute.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.entity.ai.attributes;
2 |
3 | import net.canarymod.api.attributes.CanaryRangedAttribute;
4 | import net.minecraft.util.MathHelper;
5 |
6 | public class RangedAttribute extends BaseAttribute {
7 |
8 | private final double a;
9 | private final double b;
10 | private String c;
11 |
12 | public RangedAttribute(IAttribute iattribute, String s0, double d0, double d1, double d2) {
13 | super(iattribute, s0, d0);
14 | this.a = d1;
15 | this.b = d2;
16 | if (d1 > d2) {
17 | throw new IllegalArgumentException("Minimum value cannot be bigger than maximum value!");
18 | }
19 | else if (d0 < d1) {
20 | throw new IllegalArgumentException("Default value cannot be lower than minimum value!");
21 | }
22 | else if (d0 > d2) {
23 | throw new IllegalArgumentException("Default value cannot be bigger than maximum value!");
24 | }
25 | this.canaryAttribute = new CanaryRangedAttribute(this);
26 | }
27 |
28 | public RangedAttribute a(String s0) {
29 | this.c = s0;
30 | return this;
31 | }
32 |
33 | public String g() {
34 | return this.c;
35 | }
36 |
37 | public double a(double d0) {
38 | d0 = MathHelper.a(d0, this.a, this.b);
39 | return d0;
40 | }
41 |
42 | // CanaryMod
43 | public double getMinValue() {
44 | return a;
45 | }
46 |
47 | public double getMaxValue() {
48 | return b;
49 | }
50 |
51 | public CanaryRangedAttribute getWrapper() {
52 | return (CanaryRangedAttribute) super.getWrapper();
53 | }
54 | //
55 | }
56 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/entity/effect/EntityWeatherEffect.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.entity.effect;
2 |
3 | import net.canarymod.api.entity.EntityType;
4 | import net.canarymod.api.entity.effect.CanaryWeatherEffect;
5 | import net.minecraft.entity.Entity;
6 | import net.minecraft.world.World;
7 |
8 | public abstract class EntityWeatherEffect extends Entity {
9 |
10 | public EntityWeatherEffect(World world) {
11 | super(world);
12 |
13 | // CanaryMod: Wrap effect if a sub class isn't a wrapped class
14 | this.entity = new CanaryWeatherEffect(this) {
15 | @Override
16 | public EntityType getEntityType() {
17 | return EntityType.GENERIC_EFFECT;
18 | }
19 |
20 | @Override
21 | public String getFqName() {
22 | return "Weather Effect";
23 | }
24 |
25 | public EntityWeatherEffect getHandle() {
26 | return (EntityWeatherEffect) entity;
27 | }
28 | };
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/entity/monster/EntityGiantZombie.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.entity.monster;
2 |
3 | import net.canarymod.api.entity.living.monster.CanaryGiantZombie;
4 | import net.minecraft.entity.SharedMonsterAttributes;
5 | import net.minecraft.util.BlockPos;
6 | import net.minecraft.world.World;
7 |
8 |
9 | public class EntityGiantZombie extends EntityMob {
10 |
11 | public EntityGiantZombie(World world) {
12 | super(world);
13 | this.entity = new CanaryGiantZombie(this); // CanaryMod: Wrap Entity
14 | }
15 |
16 | public float aR() {
17 | return 10.440001F;
18 | }
19 |
20 | protected void aW() {
21 | super.aW();
22 | this.a(SharedMonsterAttributes.a).a(100.0D);
23 | this.a(SharedMonsterAttributes.d).a(0.5D);
24 | this.a(SharedMonsterAttributes.e).a(50.0D);
25 | }
26 |
27 | public float a(BlockPos blockpos) {
28 | return this.o.o(blockpos) - 0.5F;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/inventory/IInventory.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.inventory;
2 |
3 | import net.minecraft.entity.player.EntityPlayer;
4 | import net.minecraft.item.ItemStack;
5 | import net.minecraft.world.IWorldNameable;
6 |
7 | public interface IInventory extends IWorldNameable {
8 |
9 | int n_();
10 |
11 | ItemStack a(int i0);
12 |
13 | ItemStack a(int i0, int i1);
14 |
15 | ItemStack b(int i0);
16 |
17 | void a(int i0, ItemStack itemstack);
18 |
19 | int p_();
20 |
21 | void o_();
22 |
23 | boolean a(EntityPlayer entityplayer);
24 |
25 | void b(EntityPlayer entityplayer);
26 |
27 | void c(EntityPlayer entityplayer);
28 |
29 | boolean b(int i0, ItemStack itemstack);
30 |
31 | int a_(int i0);
32 |
33 | void b(int i0, int i1);
34 |
35 | int g();
36 |
37 | void l();
38 | }
39 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/item/ItemBucketMilk.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.item;
2 |
3 | import net.canarymod.hook.player.EatHook;
4 | import net.minecraft.creativetab.CreativeTabs;
5 | import net.minecraft.entity.player.EntityPlayer;
6 | import net.minecraft.entity.player.EntityPlayerMP;
7 | import net.minecraft.init.Items;
8 | import net.minecraft.stats.StatList;
9 | import net.minecraft.world.World;
10 |
11 | public class ItemBucketMilk extends Item {
12 |
13 | public ItemBucketMilk() {
14 | this.c(1);
15 | this.a(CreativeTabs.f);
16 | }
17 |
18 | public ItemStack b(ItemStack itemstack, World world, EntityPlayer entityplayer) {
19 | // CanaryMod: Eat
20 | EatHook hook = (EatHook)new EatHook(((EntityPlayerMP)entityplayer).getPlayer(), itemstack.getCanaryItem(), 0, 0, null).call();
21 | if (hook.isCanceled()) {
22 | return itemstack;
23 | }
24 | // For those Lactose intolerant
25 | entityplayer.ck().a(hook.getLevelGain(), hook.getSaturationGain());
26 | //
27 |
28 | if (!entityplayer.by.d) {
29 | --itemstack.b;
30 | }
31 |
32 | if (!world.D) {
33 | entityplayer.bj();
34 | }
35 |
36 | entityplayer.b(StatList.J[Item.b((Item)this)]);
37 | return itemstack.b <= 0 ? new ItemStack(Items.aw) : itemstack;
38 | }
39 |
40 | public int d(ItemStack itemstack) {
41 | return 32;
42 | }
43 |
44 | public EnumAction e(ItemStack itemstack) {
45 | return EnumAction.DRINK;
46 | }
47 |
48 | public ItemStack a(ItemStack itemstack, World world, EntityPlayer entityplayer) {
49 | entityplayer.a(itemstack, this.d(itemstack));
50 | return itemstack;
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/item/ItemSoup.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.item;
2 |
3 | import net.minecraft.entity.player.EntityPlayer;
4 | import net.minecraft.init.Items;
5 | import net.minecraft.world.World;
6 |
7 | public class ItemSoup extends ItemFood {
8 |
9 | public ItemSoup(int i0) {
10 | super(i0, false);
11 | this.c(1);
12 | }
13 |
14 | public ItemStack b(ItemStack itemstack, World world, EntityPlayer entityplayer) {
15 | int tempAm = itemstack.b;
16 |
17 | super.b(itemstack, world, entityplayer);
18 | // CanaryMod: check if EatHook got canceled
19 | if (itemstack.b != tempAm) {
20 | return new ItemStack(Items.z);
21 | }
22 | //
23 | return itemstack;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/nbt/NBTTagByteArray.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.nbt;
2 |
3 |
4 | import java.io.DataInput;
5 | import java.io.DataOutput;
6 | import java.io.IOException;
7 | import java.util.Arrays;
8 |
9 |
10 | public class NBTTagByteArray extends NBTBase {
11 |
12 | public byte[] b; // CanaryMod: private => public
13 |
14 | NBTTagByteArray() {
15 | }
16 |
17 | public NBTTagByteArray(byte[] abyte) {
18 | this.b = abyte;
19 | }
20 |
21 | void a(DataOutput dataoutput) throws IOException {
22 | dataoutput.writeInt(this.b.length);
23 | dataoutput.write(this.b);
24 | }
25 |
26 | void a(DataInput datainput, int i0, NBTSizeTracker nbtsizetracker) throws IOException {
27 | int i1 = datainput.readInt();
28 |
29 | nbtsizetracker.a((long) (8 * i1));
30 | this.b = new byte[i1];
31 | datainput.readFully(this.b);
32 | }
33 |
34 | public byte a() {
35 | return (byte) 7;
36 | }
37 |
38 | public String toString() {
39 | return "[" + this.b.length + " bytes]";
40 | }
41 |
42 | public NBTBase b() {
43 | byte[] abyte = new byte[this.b.length];
44 |
45 | System.arraycopy(this.b, 0, abyte, 0, this.b.length);
46 | return new NBTTagByteArray(abyte);
47 | }
48 |
49 | public boolean equals(Object object) {
50 | return super.equals(object) ? Arrays.equals(this.b, ((NBTTagByteArray) object).b) : false;
51 | }
52 |
53 | public int hashCode() {
54 | return super.hashCode() ^ Arrays.hashCode(this.b);
55 | }
56 |
57 | public byte[] c() {
58 | return this.b;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/network/handshake/client/C00Handshake.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.network.handshake.client;
2 |
3 | import net.minecraft.network.EnumConnectionState;
4 | import net.minecraft.network.INetHandler;
5 | import net.minecraft.network.Packet;
6 | import net.minecraft.network.PacketBuffer;
7 | import net.minecraft.network.handshake.INetHandlerHandshakeServer;
8 |
9 | import java.io.IOException;
10 |
11 | public class C00Handshake implements Packet {
12 | private int a;
13 | public String b; //CanaryMod - Bungeecord support
14 | private int c;
15 | private EnumConnectionState d;
16 |
17 | public void a(PacketBuffer packetbuffer)
18 | throws IOException {
19 | this.a = packetbuffer.e();
20 | this.b = packetbuffer.c(Short.MAX_VALUE); //CanaryMod - Bungeecord support
21 | this.c = packetbuffer.readUnsignedShort();
22 | this.d = EnumConnectionState.a(packetbuffer.e());
23 | }
24 |
25 | public void b(PacketBuffer packetbuffer) throws IOException {
26 | packetbuffer.b(this.a);
27 | packetbuffer.a(this.b);
28 | packetbuffer.writeShort(this.c);
29 | packetbuffer.b(this.d.a());
30 | }
31 |
32 | public void a(INetHandlerHandshakeServer inethandlerhandshakeserver) {
33 | inethandlerhandshakeserver.a(this);
34 | }
35 |
36 | public EnumConnectionState a() {
37 | return this.d;
38 | }
39 |
40 | public int b() {
41 | return this.a;
42 | }
43 |
44 | public void a(INetHandler inethandler) {
45 | this.a((INetHandlerHandshakeServer)inethandler);
46 | }
47 |
48 | public int getPort() { //CanaryMod: ServerListPing ping port
49 | return this.c;
50 | }
51 | }
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/network/play/server/S23PacketBlockChange.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.network.play.server;
2 |
3 | import net.minecraft.block.Block;
4 | import net.minecraft.block.state.IBlockState;
5 | import net.minecraft.network.INetHandler;
6 | import net.minecraft.network.Packet;
7 | import net.minecraft.network.PacketBuffer;
8 | import net.minecraft.network.play.INetHandlerPlayClient;
9 | import net.minecraft.util.BlockPos;
10 | import net.minecraft.world.World;
11 |
12 | import java.io.IOException;
13 |
14 | public class S23PacketBlockChange implements Packet {
15 | public BlockPos a; // CanaryMod: private => public;
16 | public IBlockState b; // CanaryMod: private => public;
17 |
18 | public S23PacketBlockChange() {
19 | }
20 |
21 | public S23PacketBlockChange(World world, BlockPos blockpos) {
22 | this.a = blockpos;
23 | this.b = world.p(blockpos);
24 | }
25 |
26 | public void a(PacketBuffer packetbuffer) throws IOException {
27 | this.a = packetbuffer.c();
28 | this.b = (IBlockState)Block.d.a(packetbuffer.e());
29 | }
30 |
31 | public void b(PacketBuffer packetbuffer) throws IOException {
32 | packetbuffer.a(this.a);
33 | packetbuffer.b(Block.d.b(this.b));
34 | }
35 |
36 | public void a(INetHandlerPlayClient inethandlerplayclient) {
37 | inethandlerplayclient.a(this);
38 | }
39 |
40 | public void a(INetHandler inethandler) {
41 | this.a((INetHandlerPlayClient)inethandler);
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/network/play/server/S3DPacketDisplayScoreboard.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.network.play.server;
2 |
3 |
4 | import java.io.IOException;
5 | import net.minecraft.network.INetHandler;
6 | import net.minecraft.network.Packet;
7 | import net.minecraft.network.PacketBuffer;
8 | import net.minecraft.network.play.INetHandlerPlayClient;
9 | import net.minecraft.scoreboard.ScoreObjective;
10 |
11 |
12 | public class S3DPacketDisplayScoreboard implements Packet {
13 |
14 | private int a;
15 | private String b;
16 |
17 | public S3DPacketDisplayScoreboard() {}
18 |
19 | public S3DPacketDisplayScoreboard(int i0, ScoreObjective scoreobjective) {
20 | this.a = i0;
21 | if (scoreobjective == null) {
22 | this.b = "";
23 | } else {
24 | this.b = scoreobjective.b();
25 | this.b = b.substring(0, Math.min(16, b.length())); // CanaryMod: make sure its not too long
26 | }
27 |
28 | }
29 |
30 | public void a(PacketBuffer packetbuffer) throws IOException {
31 | this.a = packetbuffer.readByte();
32 | this.b = packetbuffer.c(16);
33 | }
34 |
35 | public void b(PacketBuffer packetbuffer) throws IOException {
36 | packetbuffer.writeByte(this.a);
37 | packetbuffer.a(this.b);
38 | }
39 |
40 | public void a(INetHandlerPlayClient inethandlerplayclient) {
41 | inethandlerplayclient.a(this);
42 | }
43 |
44 | public void a(INetHandler inethandler) {
45 | this.a((INetHandlerPlayClient) inethandler);
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/scoreboard/ScoreDummyCriteria.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.scoreboard;
2 |
3 | import net.canarymod.api.scoreboard.CanaryScoreDummyCriteria;
4 |
5 | import java.util.List;
6 |
7 | public class ScoreDummyCriteria implements IScoreObjectiveCriteria {
8 |
9 | private final String j;
10 | protected net.canarymod.api.scoreboard.ScoreObjectiveCriteria criteria;
11 |
12 | public ScoreDummyCriteria(String s0) {
13 | this.j = s0;
14 | // CanaryMod: lets not add doubles
15 | if (!IScoreObjectiveCriteria.a.containsKey(s0)) {
16 | IScoreObjectiveCriteria.a.put(s0, this);
17 | }//
18 | // CanaryMod: Set Variable
19 | if (!(this instanceof ScoreHealthCriteria)) {
20 | criteria = new CanaryScoreDummyCriteria(this);
21 | }//
22 | }
23 |
24 | public String a() {
25 | return this.j;
26 | }
27 |
28 | public int a(List list) {
29 | return 0;
30 | }
31 |
32 | public boolean b() {
33 | return false;
34 | }
35 |
36 | public IScoreObjectiveCriteria.EnumRenderType c() {
37 | return IScoreObjectiveCriteria.EnumRenderType.INTEGER;
38 | }
39 |
40 | public net.canarymod.api.scoreboard.ScoreObjectiveCriteria getCanaryScoreObjectiveCriteria() {
41 | return this.criteria;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/scoreboard/ScoreHealthCriteria.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.scoreboard;
2 |
3 | import net.canarymod.api.scoreboard.CanaryScoreHealthCriteria;
4 | import net.minecraft.entity.player.EntityPlayer;
5 | import net.minecraft.util.MathHelper;
6 |
7 | import java.util.Iterator;
8 | import java.util.List;
9 |
10 | public class ScoreHealthCriteria extends ScoreDummyCriteria {
11 |
12 | public ScoreHealthCriteria(String s0) {
13 | super(s0);
14 | // Canarymod: set variable
15 | criteria = new CanaryScoreHealthCriteria(this);//
16 | }
17 |
18 | public int a(List list) {
19 | float f0 = 0.0F;
20 |
21 | EntityPlayer entityplayer;
22 |
23 | for (Iterator iterator = list.iterator(); iterator.hasNext(); f0 += entityplayer.bm() + entityplayer.bM()) {
24 | entityplayer = (EntityPlayer) iterator.next();
25 | }
26 |
27 | if (list.size() > 0) {
28 | f0 /= (float) list.size();
29 | }
30 |
31 | return MathHelper.f(f0);
32 | }
33 |
34 | public boolean b() {
35 | return true;
36 | }
37 |
38 | public IScoreObjectiveCriteria.EnumRenderType c() {
39 | return IScoreObjectiveCriteria.EnumRenderType.HEARTS;
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/scoreboard/ScoreObjective.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.scoreboard;
2 |
3 | import net.canarymod.api.scoreboard.CanaryScoreObjective;
4 |
5 | public class ScoreObjective {
6 |
7 | private final Scoreboard a;
8 | private final String b;
9 | private final IScoreObjectiveCriteria c;
10 | private IScoreObjectiveCriteria.EnumRenderType d;
11 | private String e;
12 |
13 | // CanaryMod: our variables
14 | private final CanaryScoreObjective scoreObjective = new CanaryScoreObjective(this);
15 |
16 | public ScoreObjective(Scoreboard scoreboard, String s0, IScoreObjectiveCriteria iscoreobjectivecriteria) {
17 | this.a = scoreboard;
18 | this.b = s0;
19 | this.c = iscoreobjectivecriteria;
20 | this.e = s0;
21 | this.d = iscoreobjectivecriteria.c();
22 | }
23 |
24 | public String b() {
25 | return this.b;
26 | }
27 |
28 | public IScoreObjectiveCriteria c() {
29 | return this.c;
30 | }
31 |
32 | public String d() {
33 | return this.e;
34 | }
35 |
36 | public void a(String s0) {
37 | this.e = s0;
38 | this.a.b(this);
39 | }
40 |
41 | public IScoreObjectiveCriteria.EnumRenderType e() {
42 | return this.d;
43 | }
44 |
45 | public void a(IScoreObjectiveCriteria.EnumRenderType iscoreobjectivecriteria_enumrendertype) {
46 | this.d = iscoreobjectivecriteria_enumrendertype;
47 | this.a.b(this);
48 | }
49 |
50 | // CanaryMod: getter
51 | public CanaryScoreObjective getCanaryScoreObjective() {
52 | return this.scoreObjective;
53 | }
54 |
55 | public Scoreboard getScoreboard() {
56 | return this.a;
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/tileentity/TileEntityComparator.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.tileentity;
2 |
3 | import net.canarymod.api.world.blocks.CanaryComparator;
4 | import net.minecraft.nbt.NBTTagCompound;
5 |
6 | public class TileEntityComparator extends TileEntity {
7 |
8 | private int a;
9 |
10 | public TileEntityComparator() {
11 | this.complexBlock = new CanaryComparator(this); // CanaryMod: wrap tile entity
12 | }
13 |
14 | public void b(NBTTagCompound nbttagcompound) {
15 | super.b(nbttagcompound);
16 | nbttagcompound.a("OutputSignal", this.a);
17 | }
18 |
19 | public void a(NBTTagCompound nbttagcompound) {
20 | super.a(nbttagcompound);
21 | this.a = nbttagcompound.f("OutputSignal");
22 | }
23 |
24 | public int b() {
25 | return this.a;
26 | }
27 |
28 | public void a(int i0) {
29 | this.a = i0;
30 | }
31 |
32 | // CanaryMod
33 | public CanaryComparator getCanaryComparator() {
34 | return (CanaryComparator)complexBlock;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/tileentity/TileEntityDaylightDetector.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.tileentity;
2 |
3 | import net.canarymod.api.world.blocks.CanaryDaylightDetector;
4 | import net.minecraft.block.BlockDaylightDetector;
5 | import net.minecraft.server.gui.IUpdatePlayerListBox;
6 |
7 | public class TileEntityDaylightDetector extends TileEntity implements IUpdatePlayerListBox {
8 |
9 | public TileEntityDaylightDetector() {
10 | this.complexBlock = new CanaryDaylightDetector(this); // CanaryMod: wrap tile entity
11 | }
12 |
13 | public void c() {
14 | if (this.b != null && !this.b.D && this.b.K() % 20L == 0L) {
15 | this.e = this.w();
16 | if (this.e instanceof BlockDaylightDetector) {
17 | ((BlockDaylightDetector) this.e).d(this.b, this.c);
18 | }
19 | }
20 | }
21 |
22 | // CanaryMod
23 | public CanaryDaylightDetector getCanaryDaylightDetector() {
24 | return (CanaryDaylightDetector) complexBlock;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/tileentity/TileEntityDropper.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.tileentity;
2 |
3 | import net.canarymod.api.world.blocks.CanaryDropper;
4 |
5 | public class TileEntityDropper extends TileEntityDispenser {
6 |
7 | public TileEntityDropper() {
8 | this.complexBlock = new CanaryDropper(this); // CanaryMod: wrap tile entity
9 | }
10 |
11 | public String d_() {
12 | return this.k_() ? this.a : "container.dropper";
13 | }
14 |
15 | public String k() {
16 | return "minecraft:dropper";
17 | }
18 |
19 | // CanaryMod
20 | public CanaryDropper getCanaryDropper() {
21 | return (CanaryDropper)complexBlock;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/net/minecraft/world/chunk/storage/AnvilSaveHandler.java:
--------------------------------------------------------------------------------
1 | package net.minecraft.world.chunk.storage;
2 |
3 | import net.canarymod.api.world.DimensionType;
4 | import net.minecraft.nbt.NBTTagCompound;
5 | import net.minecraft.world.WorldProvider;
6 | import net.minecraft.world.storage.SaveHandler;
7 | import net.minecraft.world.storage.ThreadedFileIOBase;
8 | import net.minecraft.world.storage.WorldInfo;
9 |
10 | import java.io.File;
11 |
12 | public class AnvilSaveHandler extends SaveHandler {
13 |
14 | public AnvilSaveHandler(File file1, String s0, boolean flag0, DimensionType type) {
15 | super(file1, s0, flag0, type);
16 | }
17 |
18 | public IChunkLoader a(WorldProvider worldprovider) {
19 | // CanaryMod changed the whole thing since we have recollection of the world type we're serving.
20 | // This means we can spare us the checks for instanceof generator
21 | // And just put together the proper save path
22 | return new AnvilChunkLoader(new File(getWorldBaseDir(), getBaseName() + "/" + getBaseName() + "_" + this.type.getName()));
23 | }
24 |
25 | public void a(WorldInfo worldinfo, NBTTagCompound nbttagcompound) {
26 | worldinfo.e(19133);
27 | super.a(worldinfo, nbttagcompound);
28 | }
29 |
30 | public void a() {
31 | try {
32 | ThreadedFileIOBase.a().b();
33 | }
34 | catch (InterruptedException interruptedexception) {
35 | interruptedexception.printStackTrace();
36 | }
37 |
38 | RegionFileCache.a();
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/main/resources/assets/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CanaryModTeam/CanaryMod/d50a6ce762370e3f18e5080560971d02499cfbbc/src/main/resources/assets/favicon.png
--------------------------------------------------------------------------------
/src/main/resources/log4j2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/src/test/java/net/canarymod/CanaryModTest.java:
--------------------------------------------------------------------------------
1 | package net.canarymod;
2 |
3 | import net.canarymod.api.factory.CanaryFactory;
4 |
5 | import java.lang.reflect.Constructor;
6 | import java.lang.reflect.Field;
7 |
8 | public class CanaryModTest {
9 |
10 | public static void enableInstance() throws Exception {
11 | if (Canary.instance() == null) {
12 | Constructor cm = CanaryMod.class.getDeclaredConstructor(Object.class);
13 | cm.setAccessible(true);
14 | CanaryMod canaryMod = cm.newInstance(new Object());
15 |
16 | Field instance = Canary.class.getDeclaredField("instance");
17 | instance.setAccessible(true);
18 | instance.set(canaryMod, canaryMod);
19 | }
20 | }
21 |
22 | public static void enableFactories() throws Exception {
23 | enableInstance();
24 | if (Canary.factory() == null) {
25 | Field factory = Canary.class.getDeclaredField("factory");
26 | factory.setAccessible(true);
27 | factory.set(Canary.instance(), new CanaryFactory());
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------