All Mods Resource Packs Data Packs Shaders Modpacks Plugins
BefriendMobs Framework

BefriendMobs Framework

by SodiumZH • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

BefriendMobs Framework is intended to help modders easily create features of befriending (or say taming) mobs and friendly mobs despite their type hierarchy.

For example, most vanilla tamable mobs (e.g. wolf) inherit TamableMob class. If you want to make hostile mobs (e.g. Zombie) friendly or tamed, only using vanilla API it may become complex. Then you can easily create a subclass of Zombie (or anything else extends Mob) with BefriendMobs without using any vanilla TamableMob interfaces, and without considering about the type hierarchy of the existing mobs.

Note: This lib is still in development and the API may change on update, so it's not recommended to use this lib for development NOW. If it must be used, it's recommended to specify the lib version in the mod instead of giving a range.

Github: https://github.com/SodiumZH/Befriend-Mobs

For example depending mod, see: https://modrinth.com/mod/befriendmobs-days-with-monster-girls

For earlier versions, see: https://www.curseforge.com/minecraft/mc-mods/befriendmobs

It's always welcomed to request for more features, especially when position where you want to insert code doesn't provide an event, or properties you expect to be variable is hard-coded.

QQ Group ID: 336794947 (Chinese language)

How to Install BefriendMobs Framework (Mod)

BefriendMobs Framework by SodiumZH is verified for Forge across Minecraft versions 1.18.2, 1.19.2, 1.20.1 (latest release: 0.2.18, file size: 636 KB). Follow the steps below to install it safely from ModCraft.tv:

  1. Click the Download button above and select your Minecraft version (1.18.2, 1.19.2, 1.20.1) and platform (Forge).
  2. Make sure you have the compatible loader or environment installed for Forge.
  3. Move the downloaded BefriendMobs Framework file into your Minecraft .minecraft/mods folder and launch the game.

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
1.20.1
Forge
last yr. 1
1.18.2
Forge
last yr. 1
1.19.2
Forge
last yr. 1
##### BefriendMobs

Added Mixin. Now adding BefriendMobs API as dependency requires to add Mixin in build.gradle. For details see build.gradle in mod *Days with Monster Girls*.

Added HealingItemTable to handle healing. It accepts 4 methods to check if can use: item, tag, item stack predicate and item registry key. Generally it accepts only one of them. Adding multiple methods is allowed but not recommended.

Changed IBefriendedMob#getHealingItems to HealingItemTable. Deprecated IBefriendedMob#getNonconsumingHealingItems.

Changed CHealingHandler to adapt HealingItemTable. Now `CHealingHandler#applyHealingItem accepts cooldown ticks input. Deprecated CHealingHandler#getHealingCooldownTicks.

##### NaUtils

Added Mixin. Now adding BefriendMobs API as dependency requires Mixin in build.gradle. For details see build.gradle in mod *Days with Monster Girls*.

Added ItemEntityHurtEvent and NonLivingEntityHurtEvent, allowing to cancel damages to non-living entities.

Added ConditionalAttributeModifier as an auto-updating AttributeModifier added and removed depending on a Predicate as condition.

AddedObjectOrSupplier as a supplier either from a static object or a functional Supplier.

Added ObjectOrKey as a supplier either from a static object or a key of registry.

Added ItemOrKey and EntityTypeOrKey as wrappers for ObjectOrKey of Item and EntityType .

Added DynamicObjectKeyMap as a mapping from registered objects to something. It has ObjectOrKey as keys and ObjectOrSupplier as values, allowing to dynamically find objects from registries and get volatile values (e.g. max health) from static map objects.

Added DynamicItemKeyMap and DynamicEntityTypeKeyMap as wrappers of DynamicObjectKeyMap of Item and EntityType.
##### BefriendMobs

Added Mixin. Now adding BefriendMobs API as dependency requires to add Mixin in build.gradle. For details see build.gradle in mod *Days with Monster Girls*.

Added HealingItemTable to handle healing. It accepts 4 methods to check if can use: item, tag, item stack predicate and item registry key. Generally it accepts only one of them. Adding multiple methods is allowed but not recommended.

Changed IBefriendedMob#getHealingItems to HealingItemTable. Deprecated IBefriendedMob#getNonconsumingHealingItems.

Changed CHealingHandler to adapt HealingItemTable. Now `CHealingHandler#applyHealingItem accepts cooldown ticks input. Deprecated CHealingHandler#getHealingCooldownTicks.

##### NaUtils

Added Mixin. Now adding BefriendMobs API as dependency requires Mixin in build.gradle. For details see build.gradle in mod *Days with Monster Girls*.

Added ItemEntityHurtEvent and NonLivingEntityHurtEvent, allowing to cancel damages to non-living entities.

Added ConditionalAttributeModifier as an auto-updating AttributeModifier added and removed depending on a Predicate as condition.

AddedObjectOrSupplier as a supplier either from a static object or a functional Supplier.

Added ObjectOrKey as a supplier either from a static object or a key of registry.

Added ItemOrKey and EntityTypeOrKey as wrappers for ObjectOrKey of Item and EntityType .

Added DynamicObjectKeyMap as a mapping from registered objects to something. It has ObjectOrKey as keys and ObjectOrSupplier as values, allowing to dynamically find objects from registries and get volatile values (e.g. max health) from static map objects.

Added DynamicItemKeyMap and DynamicEntityTypeKeyMap as wrappers of DynamicObjectKeyMap of Item and EntityType.
##### BefriendMobs

Added Mixin. Now adding BefriendMobs API as dependency requires to add Mixin in build.gradle. For details see build.gradle in mod *Days with Monster Girls*.

Added HealingItemTable to handle healing. It accepts 4 methods to check if can use: item, tag, item stack predicate and item registry key. Generally it accepts only one of them. Adding multiple methods is allowed but not recommended.

Changed IBefriendedMob#getHealingItems to HealingItemTable. Deprecated IBefriendedMob#getNonconsumingHealingItems.

Changed CHealingHandler to adapt HealingItemTable. Now `CHealingHandler#applyHealingItem accepts cooldown ticks input. Deprecated CHealingHandler#getHealingCooldownTicks.

##### NaUtils

Added Mixin. Now adding BefriendMobs API as dependency requires Mixin in build.gradle. For details see build.gradle in mod *Days with Monster Girls*.

Added ItemEntityHurtEvent and NonLivingEntityHurtEvent, allowing to cancel damages to non-living entities.

Added ConditionalAttributeModifier as an auto-updating AttributeModifier added and removed depending on a Predicate as condition.

AddedObjectOrSupplier as a supplier either from a static object or a functional Supplier.

Added ObjectOrKey as a supplier either from a static object or a key of registry.

Added ItemOrKey and EntityTypeOrKey as wrappers for ObjectOrKey of Item and EntityType .

Added DynamicObjectKeyMap as a mapping from registered objects to something. It has ObjectOrKey as keys and ObjectOrSupplier as values, allowing to dynamically find objects from registries and get volatile values (e.g. max health) from static map objects.

Added DynamicItemKeyMap and DynamicEntityTypeKeyMap as wrappers of DynamicObjectKeyMap of Item and EntityType.
BefriendMobs Framework Icon
Download BefriendMobs Framework
Select game version
Select platform