ActionLib

轻松让插件实现基于数据的操作。

资源图片
ActionLib 用于轻松实现基于 JSON 的数据驱动操作,例如设置玩家的生命值或饱和度,或显示随机物品栏。

更好的文档可以在 这里 找到。

默认操作:
trip: 将玩家的整个物品栏掉落在地上
teleport_player: 允许传送到玩家
spawn_entity: 在指定半径内随机生成实体
smite: 用闪电击中玩家
show_screen: 向玩家显示指定的屏幕(目前仅支持演示屏幕)
set_saturation: 设置玩家的饱和度等级
set_player_armor: 设置玩家的盔甲
set_level: 设置玩家的经验等级
set_health: 设置玩家的生命值
set_gamemode: 设置玩家的游戏模式
set_food_level: 设置玩家的食物等级
set_fire: 使玩家着火
send_title: 向玩家发送标题
send_message: 向玩家发送消息
potion_effect: 允许添加、移除和清除玩家的药水效果
player_chat: 让玩家发送指定的消息
play_sound: 向玩家播放特定的声音
open_inventory: 导致玩家打开一个随机或指定的物品栏(与 show_screen 不同)
launch_entity: 允许将所有实体(或仅玩家)发射到空中
kick_player: 踢出玩家
give_item: 给玩家一个指定的物品
flip_player: 将玩家翻转 180 度
drop_item: 在玩家的主手或离手手中掉落物品

添加自定义操作:
自定义操作通过扩展 "AbstractAction" 类并使用 "ActionType" 注解来添加
@ActionType(value = "操作名称")
public class CustomAction extends AbstractAction {

public CustomAction(JavaPlugin plugin) {
super(plugin);
}

// 可选的 loadFromJson 以从操作的 json 对象中加载

@Override
public void execute(Player target, String[] args) {
// 运行代码放在这里
}

}


注册自定义操作:
ActionRegistry.registerActionsFromPackage("com.example.package", javaPluginInstance);


使用操作:
ActionObjectManager manager = new ActionObjectManager();

JsonObject jsonObject = JsonParser.parseReader(new FileReader(file)).getAsJsonObject();

ActionObject newAction = new ActionObject(plugin, jsonObject);
manager.addActionObject(newAction);

ActionObject action = manager.getEnabledActionObjectByName(args[1]);

action.execute(target, Arrays.copyOfRange(args, 2, args.length));