截图
介绍
Please consider supporting me on ko-fi if you like the mod and can afford it, I appreciate even 1 dollar. 
_I grant permission to anyone seeking to add my mod to a modpack_
Wild Battle API
Wild Battle API is a shared wild battle AI framework for Cobblemon.
For players and pack authors, it provides configurable smarter wild battle behavior with built-in presets and admin tools. For developers, it exposes a supported public API for registering custom wild BattleAI implementations without replacing Cobblemon internals directly.
Wild Battle API installs a delegating AI on wild battle actors at battle start. On each AI decision:
- Higher-priority providers are checked first.
- The first provider that returns a non-null
BattleAIis used. - Returning
nulldefers to lower-priority providers. - If no provider claims the context, the actor’s original Cobblemon AI is used as fallback.
This lets multiple mods cooperate safely while keeping a reliable fallback path when no custom provider applies.
Included Features
- Shared API for wild battle AI extensions
- Priority-based provider resolution
- Safe fallback to the actor’s original Cobblemon AI
- Built-in configurable smart wild AI behavior
- Difficulty presets from
easytoextreme - Admin UI and debug commands
- Fabric and NeoForge support for Minecraft
1.21.1
Admin Commands
Wild Battle API includes operator/admin commands for testing and configuration.
Commands:
/wildbattleapi ui/wildbattleapi difficulty <easy|medium|hard|extreme>/wildbattleapi debug on/wildbattleapi debug off/wildbattleapi debug status
Aliases:
/wba ui/wba difficulty <easy|medium|hard|extreme>/wba debug on|off|status
These commands require permission level 2.
Developer Usage
Developer Usage
Supported Public API
Use only these classes for third-party integrations:
com.github.raguto.wildbattleapi.api.WildBattleAPIcom.github.raguto.wildbattleapi.api.WildAIProvidercom.github.raguto.wildbattleapi.api.WildAIContext
Do not depend on internal packages such as impl, mixin, config, or network.
Runtime Dependency
Install Wild Battle API anywhere your dependent mod loads. In normal modpacks, that means both client and server.
Mod ID:
wild_battle_api
Also declare it as a dependency in your mod metadata.
Fabric (fabric.mod.json):
{
"depends": {
"wild_battle_api": "*"
}
}
NeoForge (META-INF/neoforge.mods.toml):
[[dependencies.your_mod_id]]
modId = "wild_battle_api"
type = "required"
versionRange = "[1.0.0,)"
ordering = "AFTER"
side = "BOTH"
Adjust the minimum version to the first Wild Battle API version your mod supports.
Compile-Time Dependency
If you are not consuming a published Maven artifact, compile against the loader-specific jar directly.
Fabric example:
dependencies {
modCompileOnly files("libs/wild_battle_api-fabric-1.0.0.jar")
}
NeoForge example:
dependencies {
compileOnly files("libs/wild_battle_api-neoforge-1.0.0.jar")
}
Use the loader-appropriate jar for your environment.
Registering a Provider
Register your provider once during your mod’s common initialization.
import com.github.raguto.wildbattleapi.api.WildBattleAPI;
import com.github.raguto.wildbattleapi.api.WildAIContext;
public final class MyWildAIRegistration {
public static void init() {
WildBattleAPI.registerProvider(150, context -> {
if (shouldUseMyAI(context)) {
return new MyCustomWildBattleAI();
}
return null;
});
}
private static boolean shouldUseMyAI(WildAIContext context) {
return context.getBattle() != null && context.getActor() != null;
}
}
You can also register at the default priority:
WildBattleAPI.registerProvider(context -> null);
Priority Guidance
0: catch-all or default provider50: standard override100+: high-priority or boss-specific override200+: hard override, use carefully
If your provider only handles specific cases, return null for everything else.
Implementing Your Own BattleAI
You may provide any class that implements Cobblemon’s BattleAI.
import com.cobblemon.mod.common.api.battles.model.PokemonBattle;
import com.cobblemon.mod.common.api.battles.model.ai.BattleAI;
import com.cobblemon.mod.common.battles.ActiveBattlePokemon;
import com.cobblemon.mod.common.battles.BattleSide;
import com.cobblemon.mod.common.battles.PassActionResponse;
import com.cobblemon.mod.common.battles.ShowdownActionResponse;
import com.cobblemon.mod.common.battles.ShowdownMoveset;
import com.cobblemon.mod.common.net.messages.client.battle.BattleHealthChangePacket;
import org.jetbrains.annotations.Nullable;
public final class MyCustomWildBattleAI implements BattleAI {
@Override
public ShowdownActionResponse choose(
ActiveBattlePokemon activeBattlePokemon,
PokemonBattle battle,
BattleSide side,
@Nullable ShowdownMoveset moveset,
boolean forceSwitch
) {
if (forceSwitch || moveset == null) {
return PassActionResponse.INSTANCE;
}
// Replace this with your own move or switch logic.
return PassActionResponse.INSTANCE;
}
@Override
public void onHealthChange(BattleHealthChangePacket packet) {
// Optional state tracking.
}
}
WildAIContext
WildAIContext gives providers the information needed to decide whether to claim a wild battle actor.
Always available:
getActor()getPokemonList()getBattle()isForceSwitch()
Nullable depending on the current decision:
getActiveBattlePokemon()getAiSide()getMoveset()
Guard nullable fields before using them.
Integration Notes
- Keep provider logic fast and predictable.
- Return
nullwhen your mod does not want to claim the current context. - Avoid throwing exceptions from provider or AI logic.
- Test in both dedicated server and integrated singleplayer.
- If multiple mods register providers, higher numeric priority is checked first.
Licensing
Wild Battle API code and binaries are All Rights Reserved.
Third-party usage and distribution permissions are defined by the author policy on the mod page.
常见问题
Wild Battle API 支持哪些 Minecraft 版本?
Wild Battle API 支持 Minecraft Java 版 1.21.1,可用的加载器:Fabric / NeoForge。下载时注意选择和你游戏版本一致的文件。
Wild Battle API 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:客户端和服务端都要装。
Raguto 的其他作品
查看全部 →Cobblemon Battle Extras
增强战斗体验,并支持在战斗中使用键盘/手柄操作的 Cobblemon 附属模组!
Citadel (Unofficial Port)
一个轻量级前置库
Alex’s Mobs (Unofficial Port)
85+ 种新生物,风格品质超越原版游戏。
Cobblemon Minimons
捕捉并展示迷你 3D 宝可梦模型,用来装饰!
评论
登录后评论和评分