多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
#### :-: **窗口环境的所有方法** >[danger] 可以在具有环境的代码处 this.方法名([参数]) 来调用 > 如: 要拿到玩家的 `UMap` 下面2种方法等价 > `UMap data = this.getPlayerUMap();` 更推荐这种 > `UMap data = getPlayerUMap();` > 同理拿到空位物品的方法: `AdapterItemStack 物品1 = this.get(0);` #### :-: **Object 是顶层父类,所有java类都默认继承他** >[danger] 所有临时数据在窗口关闭时清除 >[info] > 设置 `this.setTemp("临时概率",0.5);` > 获取 `double 临时概率 = this.getTemp("临时概率");` >[info] 设置 `this.setTemp("临时消息","这是一条消息");` > 获取 `String 临时消息 = this.getTemp("临时消息");` >[info] 设置 `this.setTemp("临时整数",1);` > 获取 `int 临时整数= this.getTemp("临时整数");` ``` public interface ExtendGui { /** * 获取原版窗口 * * @return 谨慎操作 */ Inventory getInventory(); /** * 拿到玩家的UMap */ UMap getPlayerUMap(); /** * 获取玩家背包的物品 */ default AdapterItemStack getPlayerItem(int slot) { AdapterPlayerInventory playerInventory = getPlayer().getPlayerInventory(); return playerInventory.getItem(slot); } /** * 返回这个窗口打开的玩家 */ AdapterPlayer getPlayer(); /** * 所有可操作的空位位置 */ Set<Integer> keySet(); /** * 判断空位的物品是不是空气 */ boolean isAir(int slot); /** * 获取pr的物品,如果set过物品,将是缓存的物品,不会是格子上真实的物品 */ AdapterItemStack get(int slot); /** * 设置缓存物品,在提交前调用get返回的都是这个物品 */ void set(int slot, ItemStack itemStack); /** * 同上 */ void set(int slot, AdapterItemStack itemStack); /** * 清空空位的物品,同样是操作缓存物品 */ void clear(int slot); /** * 获取按钮物品,真实物品,直接更改内容会修改对应按钮上物品的数据 */ AdapterItemStack getButton(int slot); /** * 设置物品的显示物品,真实物品,直接更改内容会修改对应按钮上物品的数据 * * @param slot 位置 * @param itemStack 物品 */ void setButton(int slot, AdapterItemStack itemStack); /** * 同上 */ void setButton(int slot, ItemStack itemStack); /** * 模拟点击按钮 * * @param slot 按钮 * @param action 动作,如: left,right,shift_left,shift_right,double_click,或任意自定义内容 */ default void clickButton(int slot, String action) { clickButton(slot, action, null); } /** * 模拟点击按钮 * * @param slot 按钮 * @param action 动作,如: left,right,shift_left,shift_right,double_click,或任意自定义内容 * @param cursor 当前鼠标上的物品,传入null会自动变为空气 */ void clickButton(int slot, String action, AdapterItemStack cursor); /** * 设置临时数据(在窗口关闭后清空) * * @param type 类型 * @param obj 任意值 */ void setTemp(String type, Object obj); /** * 取临时数据 * * @param type 类型 * @return 值, 可能为null */ Object getTemp(String type); /** * 取临时数据 * * @param type 类型 * @param def 没有值时,返回这个def * @return 值, 可能为null */ Object getTemp(String type,Object def); /** * 是否有临时数据 * * @param type 类型 * @return 没有返回false */ boolean hasTemp(String type); /** * 移除一个临时数据 * @param type * @return */ Object removeTemp(String type); /** * 执行提交 * * @param su true=将缓存物品放到到窗口内 */ void execute(boolean su); } ```