你可以使用HexUtils类来将16进制颜色代码转换为Minecraft颜色代码。或将&符号转换为Minecraft颜色代码。
public void test() {
HexUtils.colorify("�FFE0我EAAEA的	D55F5世&#EB00FF界"); //Minecraft1.16+
HexUtils.legacyColorify("&3我&2的&4世&6界"); //Minecraft1.16-
}
本api还支持渐变文字与彩虹文字 使用方法
public void test() {
HexUtils.colorify("<r>我是彩虹"); //<r>标签可以填入过度速度比如<r:0.5>
}
本api提供一个无需在plugin.yml中注册的命令注册器, 比如注册一个test指令
public void test() {
CommandProcessor.registerCommand(this)
.setName("test") //指令名
.setDescription("Test command") //指令描述
.setPermission("test.permission") //指令权限
.setPermissionMessage(HexUtils.legacyColorify("&cYou do not have permission to use this command")) //无权限提示
.setUsage("/test") //当执行器返回false时显示的用法
.setAliases(Collections.singletonList("t")) //指令别名
.setExecutor((sender, command, label, args) -> { //指令执行器
sender.sendMessage(HexUtils.legacyColorify("&aTest command executed!"));
return true;
})
.build();
}
HybridAPI为基于Bukkit的提供了一个动态事件订阅器,无需实现Listener接口 您可以使用一行简单的代码来订阅事件
此类用于处理带有 @ForgeEventListener
注解的监听器方法。
register(Object listener, EventBus eventBus)
此方法用于注册带有 @ForgeEventListener
注解的监听器对象。此方法已过时,建议使用带有 Plugin
参数的方法。
参数:
listener
:带有 @ForgeEventListener
注解的监听器对象eventBus
:事件总线,例如 MinecraftForge.EVENT_BUS
register(Plugin plugin, Object listener, EventBus eventBus)
此方法用于注册带有 @ForgeEventListener
注解的监听器对象,并将其关联到特定的插件。
参数:
plugin
:插件listener
:带有 @ForgeEventListener
注解的监听器对象eventBus
:事件总线,例如 MinecraftForge.EVENT_BUS
unregister(Object listener)
此方法用于取消注册指定的监听器。
参数:
listener
:监听器对象unregisterAll()
此方法用于取消注册所有已注册的监听器。
unregisterAll(Plugin plugin)
此方法用于取消注册指定插件的所有监听器。
参数:
plugin
:插件随机选择器它可以帮助你快速实现一些随机功能,并且支持权重功能
一个简单的随机选择器使用方法
public void test() {
RandomSelector<String> randomSelector = RandomSelector.uniform(Arrays.asList("a", "b", "c"));
String pick = randomSelector.pick();
System.out.println(pick);
}
带有权重的随机选择器使用方法,你需要在你的对象里面实现Weighted接口
实现接口的类:
public class RandomString implements Weighted {
private final String value;
private final double weight;
public RandomString(String value, double weight) {
this.value = value;
this.weight = weight;
}
@Override
public double getWeight() {
return 0;
}
}
使用方法:
public void test() {
List<RandomString> randomStrings = new ArrayList<>();
RandomSelector<RandomString> randomSelector = RandomSelector.weighted(randomStrings);
RandomString pick = randomSelector.pick();
System.out.println(pick.getValue() + " " + pick.getWeight());
}
菜单构建器它可以帮助你快速实现构建一个菜单
一个简单的菜单构建器使用方法
public void createMenu(Player player) {
//菜单必须提供标题,大小和按钮
String title = "测试菜单";
int size = 9;
List<Button> buttons = new ArrayList<>();
//创建一个Button,Button必须提供图标,位置
Button button = new ButtonBuilder()
.setSlot(0)
.setIcon(new ItemStack(Material.DIAMOND))
.build();
buttons.add(button);
Menu menu = new MenuBuilder(title, size, buttons).build();
menu.open(player);
}
菜单还有更多特性,比如: 需求条件,点击执行器等,请查看源码
本api封装了开源的Boostedyaml,并对Bukkit的物品,坐标等实现了序列化和反序列化,使用方法如下:
public void test() {
// 创建配置文件管理器,如果文件不存在则新建
ConfigManager configManager = RegisterConfig.registerConfig(plugin, "test.yml", true);
// 获取配置文件
YamlDocument config = configManager.getConfig();
//写入数据
config.set("test", "test");
//保存数据
configManager.saveConfig();
}
本api封装了Pixelmon mod的一些常用方法,使用方法如下:
PokemonApi
是一个宝可梦API类,提供了一系列的宝可梦相关的方法。
获取 PokemonApi
的实例。这个方法实现了单例模式,保证了全局只有一个 PokemonApi
的实例。
public static PokemonApi getInstance();
从宝可梦字符串构建宝可梦。这个方法接受一个宝可梦的规格字符串,然后创建一个对应的宝可梦对象。
public Pokemon getPokemon(String pokemonSpec);
从宝可梦NBT构建宝可梦。这个方法接受一个宝可梦的NBT标签,然后创建一个对应的宝可梦对象。
public Pokemon getPokemon(NBTTagCompound nbtTagCompound);
获得玩家宝可梦队伍。这个方法接受一个玩家对象,然后返回这个玩家的宝可梦队伍。 已经过时,建议使用getPartyStorage方法。
@Deprecated
public PlayerPartyStorage getPlayerPartyStorage(OfflinePlayer player);
获得玩家宝可梦队伍。这个方法接受一个玩家对象,然后返回这个玩家的宝可梦队伍。
public PlayerPartyStorage getPartyStorage(OfflinePlayer player);
获得玩家宝可梦仓库。这个方法接受一个玩家对象,然后返回这个玩家的宝可梦仓库。
public PCStorage getPCStorage(OfflinePlayer player);
获得宝可梦的照片。这个方法接受一个宝可梦对象,然后返回这个宝可梦的照片。
public ItemStack getPokemonPhoto(Pokemon pokemon);
获得宝可梦的照片(发光)。这个方法接受一个宝可梦对象,然后返回这个宝可梦的照片,这个照片会发光。
public ItemStack getPokemonGlowPhoto(Pokemon pokemon);
删除玩家宝可梦队伍中的宝可梦。这个方法接受一个玩家对象和一个宝可梦对象,然后从玩家的宝可梦队伍中删除这个宝可梦。
public boolean removePokemonFromParty(OfflinePlayer player, Pokemon pokemon);
删除玩家宝可梦仓库中的宝可梦。这个方法接受一个玩家对象和一个宝可梦对象,然后从玩家的宝可梦仓库中删除这个宝可梦。
public boolean removePokemonFromPc(OfflinePlayer player, Pokemon pokemon);
获得宝可梦是几v的。这个方法接受一个宝可梦对象,然后返回这个宝可梦的IV值的数量。
public int getMaxIv(Pokemon pokemon);
获得宝可梦的属性。这个方法接受一个宝可梦对象,然后返回这个宝可梦的属性map。
public Map<EnumPokeAttribute, Object> getAttributes(Pokemon pokemon);
获得带有宝可梦信息的照片。这个方法接受一个宝可梦对象,然后返回这个宝可梦的照片,这个照片上会有宝可梦的信息。格式可以再api/config.yml中设置
public ItemStack getPokemonPhotoInfo(Pokemon pokemon);
获得带有宝可梦信息的照片,可以自定义名称和描述。这个方法接受一个宝可梦对象,一个自定义的名称和一个自定义的描述,然后返回这个宝可梦的照片,这个照片上会有宝可梦的信息,名称和描述是自定义的。
public ItemStack getPokemonPhotoInfo(Pokemon pokemon, String name, List<String> lore);
通过属性获取宝可梦的属性值。这个方法接受一个属性和一个宝可梦对象,然后返回这个宝可梦的这个属性的值。
private Object getAttribute(EnumPokeAttribute attribute, Pokemon pokemon);
本api提供很多Bukkit对象和forge对象互相转换或互相操作的方法,一些使用方法如下:
public void test(Player player) {
// 将bukkit的物品转换为minecraft的物品
net.minecraft.item.ItemStack minecraftItemStack = BaseApi.getMinecraftItemStack(new ItemStack(Material.DIAMOND));
// 将minecraft的物品转换为bukkit的物品
ItemStack bukkitItemStack = BaseApi.getBukkitItemStack(minecraftItemStack);
// 将Bukkit的玩家转换为minecraft的玩家
EntityPlayer minecraftPlayer = BaseApi.getMinecraftPlayer(player);
// 将Bukkit的实体转换为minecraft的实体
Entity minecraftEntity = BaseApi.getMinecraftEntity(player);
// 将minecraft的实体转换为bukkit的实体
org.bukkit.entity.Entity bukkitEntity = BaseApi.getBukkitEntity(minecraftEntity);
// 更多API请查看BaseApi类
}
本API提供了Pokemon mod的一些,这些变量可以被PlaceholderAPI解析:
属性 | 说明 |
---|---|
%hsa_wins% | 玩家对战胜场 |
%hsa_losses% | 玩家对战败场 |
%hsa_totalbattle% | 玩家对战总计场次 |
%hsa_totalexp% | 玩家总计获得经验 |
%hsa_totalkills% | 玩家总计击杀 |
%hsa_currentexp% | 玩家当前经验 |
%hsa_currentkills% | 玩家当前击杀 |
%hsa_totalbred% | 玩家总计繁殖 |
%hsa_totalhatched% | 玩家总计孵蛋 |
%hsa_totalevolved% | 玩家总计进化 |
%hsa_seen% | 玩家看见的宝可梦数量 |
%hsa_caught% | 返回玩家抓的宝可梦总数 |
%hsa_size% | 图鉴大小 |
%hsa_percent% | 图鉴收集完成度 |
%hsa_percent_format% | 图鉴收集完成度格式化 |
%hsa_pokemoney% | 玩家的宝可梦币 |
%hsa_haspokemon_[pokename]% | 在队伍中是否有指定name的宝可梦,有返回位置没有返回false |
%hsa_original_haspokemon_[pokename]% | 在队伍中或pc中是否有原始训练师是当前玩家的指定name的宝可梦,有返回位置,没有返回false |
%hsa_name_[slot]% | 指定队伍位置的宝可梦种类 |
%hsa_localname_[slot]% | 指定队伍位置的宝可梦本地名称 |
%hsa_nickname_[slot]% | 指定队伍位置的宝可梦昵称(没有昵称返回本地名称) |
%hsa_form_[slot]% | 指定队伍位置的宝可梦形态 |
%hsa_original_[slot]% | 队伍指定位置的宝可梦的原始训练师 |
%hsa_egggroup_[slot]% | 队伍指定位置的宝可梦的蛋组 |
%hsa_isegg_[slot]% | 队伍指定位置的宝可梦是否是蛋 |
%hsa_eggcycles_[slot]% | 队伍指定位置的蛋的剩余孵化周期 |
%hsa_shiny_[slot]% | 指定队伍位置宝可梦是否是闪光 |
%hsa_pokeball_[slot]% | 指定队伍位置宝可梦的精灵球 |
%hsa_cantrade_[slot]% | 指定队伍位置宝可梦能否用于交易 |
%hsa_canbreed_[slot]% | 指定队伍位置宝可梦能否繁殖 |
%hsa_customtexture_[slot]% | 指定队伍位置宝可梦的自定义材质 |
%hsa_pokedex_[slot]% | 指定队伍位置宝可梦的图鉴值 |
%hsa_islegendary_[slot]% | 指定位置是否是神兽 |
%hsa_isultrabeast_[slot]% | 指定位置是否是异兽 |
%hsa_move_[slot]_[index]% | 指定队伍宝可梦指定栏位的技能名称 index范围[1,4],没有技能返回空 |
%hsa_partysize% | 队伍中宝可梦的数量 |
%hsa_partyegg% | 队伍中宝可梦的蛋数量 |
%hsa_info_[slot]_[信息名称]% | 指定队伍位置的宝可梦的指定信息 |
name: 宝可梦名称
level,type, form, growth,nature, mintnature, ability,gender(等级,类型,形态, 体型,性格, 薄荷性格,特性,性别)
evhp,evattack,evdefence,evsattack,evsdefence,evspeed,evtotal,(努力值)
ivhp,ivattack,ivdefence, ivsattack,ivsdefence,ivspeed,ivtotal,(个体值)
hthp,htattack,htdefence, htsattack,htsdefence,htspeed,httotal,(王冠个体值)
hp,attack,defence,sattack,sdefence, speed,total(种族值)
hp,nattack,ndefence,nsattack,nsdefence,nspeed,ntotal(当前属性值)
friendship(亲密度),helditem(携带道具),palette(精灵皮肤)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。