重写了TUI系统,优化底层框架
Java CI-CD with Maven / build (push) Successful in 50m11s Details

This commit is contained in:
zhangyuheng 2024-05-17 20:47:13 +08:00
parent d2150ee72e
commit e27f07ca4d
19 changed files with 264 additions and 705 deletions

View File

@ -6,7 +6,7 @@
<groupId>cn.lunadeer</groupId>
<artifactId>Dominion</artifactId>
<version>1.24.0-beta</version>
<version>1.24.1-beta</version>
<packaging>jar</packaging>
<name>Dominion</name>

View File

@ -250,7 +250,8 @@ public class PrivilegeController {
}
private static PlayerPrivilegeDTO createPlayerPrivilege(Player operator, UUID player, DominionDTO dom) {
if (operator.getUniqueId() == player) {
Dominion.logger.debug("operator: " + operator.getUniqueId() + " player: " + player);
if (operator.getUniqueId().equals(player)) {
Dominion.notification.error(operator, "你不能给自己设置特权");
return null;
}

View File

@ -3,9 +3,9 @@ package cn.lunadeer.dominion.tuis;
import cn.lunadeer.dominion.Dominion;
import cn.lunadeer.dominion.dtos.DominionDTO;
import cn.lunadeer.dominion.dtos.PlayerPrivilegeDTO;
import cn.lunadeer.dominion.utils.STUI.Button;
import cn.lunadeer.dominion.utils.STUI.Line;
import cn.lunadeer.dominion.utils.STUI.ListView;
import cn.lunadeer.minecraftpluginutils.stui.ListView;
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
import cn.lunadeer.minecraftpluginutils.stui.components.Line;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@ -76,8 +76,8 @@ public class Apis {
int page = getPage(args);
ListView view = ListView.create(10, "/dominion help");
view.title("领地插件命令帮助 <>表示必填参数 []表示可选参数")
.add(Line.create().append("打开交互菜单").append(Button.create("/dominion menu", "/dominion menu")))
.add(Line.create().append("查看帮助").append(Button.create("/dominion help [页码]", "/dominion help 1")))
.add(Line.create().append("打开交互菜单").append(Button.create("/dominion menu").setExecuteCommand("/dominion menu").build()))
.add(Line.create().append("查看帮助").append(Button.create("/dominion help [页码]").setExecuteCommand("/dominion help 1").build()))
.add(Line.create().append("创建领地").append("/dominion create <领地名称>"))
.add(Line.create().append("自动创建领地").append("/dominion auto_create <领地名称>"))
.add(Line.create().append("创建子领地").append("/dominion create_sub <子领地名称> [父领地名称]"))
@ -94,20 +94,20 @@ public class Apis {
.add(Line.create().append("删除领地").append("/dominion delete <领地名称> [force]"))
// 管理员指令
.add(Line.create().append("---[管理员指令]---"))
.add(Line.create().append("刷新缓存").append(Button.create("/dominion reload_cache", "/dominion reload_cache")))
.add(Line.create().append("重载配置").append(Button.create("/dominion reload_config", "/dominion reload_config")))
.add(Line.create().append("刷新缓存").append(Button.create("/dominion reload_cache").setExecuteCommand("/dominion reload_cache").build()))
.add(Line.create().append("重载配置").append(Button.create("/dominion reload_config").setExecuteCommand("/dominion reload_config").build()))
// 以下指令主要被用于 ui 触发
.add(Line.create().append("---[以下主要用于UI触发]---"))
.add(Line.create().append("列出所有领地").append(Button.create("/dominion list [页码]", "/dominion list")))
.add(Line.create().append("查看领地信息").append(Button.create("/dominion info [领地名称]", "/dominion info")))
.add(Line.create().append("查看领地权限信息").append(Button.create("/dominion flag_info <领地名称> [页码]", "/dominion flag_info")))
.add(Line.create().append("列出所有领地").append(Button.create("/dominion list [页码]").setExecuteCommand("/dominion list").build()))
.add(Line.create().append("查看领地信息").append(Button.create("/dominion info [领地名称]").setExecuteCommand("/dominion info").build()))
.add(Line.create().append("查看领地权限信息").append(Button.create("/dominion flag_info <领地名称> [页码]").setExecuteCommand("/dominion flag_info").build()))
.add(Line.create().append("设置领地权限").append("/dominion set <权限名称> <true/false> [领地名称]"))
.add(Line.create().append("创建玩家特权").append("/dominion create_privilege <玩家名称> [领地名称]"))
.add(Line.create().append("设置玩家特权").append("/dominion set_privilege <玩家名称> <权限名称> <true/false> [领地名称]"))
.add(Line.create().append("重置玩家特权").append("/dominion clear_privilege <玩家名称> [领地名称]"))
.add(Line.create().append("查看领地玩家特权列表").append("/dominion privilege_list [领地名称] [页码]"))
.add(Line.create().append("查看玩家特权信息").append("/dominion privilege_info <玩家名称> [领地名称] [页码]"))
.add(Line.create().append("系统配置").append(Button.create("/dominion config [页码]", "/dominion config")))
.add(Line.create().append("系统配置").append(Button.create("/dominion config [页码]").setExecuteCommand("/dominion config").build()))
.showOn(player, page);
}

View File

@ -1,10 +1,10 @@
package cn.lunadeer.dominion.tuis;
import cn.lunadeer.dominion.Dominion;
import cn.lunadeer.dominion.utils.STUI.Button;
import cn.lunadeer.dominion.utils.STUI.Line;
import cn.lunadeer.dominion.utils.STUI.ListView;
import cn.lunadeer.dominion.utils.STUI.NumChanger;
import cn.lunadeer.minecraftpluginutils.stui.ListView;
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
import cn.lunadeer.minecraftpluginutils.stui.components.Line;
import cn.lunadeer.minecraftpluginutils.stui.components.NumChanger;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.Style;
import net.kyori.adventure.text.format.TextDecoration;
@ -21,7 +21,7 @@ public class DominionConfig {
int page = getPage(args);
ListView view = ListView.create(10, "/dominion config");
view.title("系统配置");
view.navigator(Line.create().append(Button.create("主菜单", "/dominion menu")).append("系统配置"));
view.navigator(Line.create().append(Button.create("主菜单").setExecuteCommand("/dominion menu").build()).append("系统配置"));
Line limitSize = Line.create()
.append(Component.text("领地尺寸限制"));
@ -29,29 +29,29 @@ public class DominionConfig {
Line limitSizeX = Line.create()
.append(Component.text(" X轴(东西)"));
if (Dominion.config.getLimitSizeX() == -1) {
limitSizeX.append(Component.text("无限制")).append(Button.create("设置数值", "/dominion set_config limit_size_x 64 " + page));
limitSizeX.append(Component.text("无限制")).append(Button.create("设置数值").setExecuteCommand("/dominion set_config limit_size_x 64 " + page).build());
} else {
limitSizeX.append(NumChanger.create(Dominion.config.getLimitSizeX(), "/dominion set_config limit_size_x").setPageNumber(page).build());
limitSizeX.append(Button.create("设置无限制", "/dominion set_config limit_size_x -1 " + page));
limitSizeX.append(Button.create("设置无限制").setExecuteCommand("/dominion set_config limit_size_x -1 " + page).build());
}
view.add(limitSizeX);
Line limitSizeZ = Line.create()
.append(Component.text(" Z轴(南北)"));
if (Dominion.config.getLimitSizeZ() == -1) {
limitSizeZ.append(Component.text("无限制")).append(Button.create("设置数值", "/dominion set_config limit_size_z 64 " + page));
limitSizeZ.append(Component.text("无限制")).append(Button.create("设置数值").setExecuteCommand("/dominion set_config limit_size_z 64 " + page).build());
} else {
limitSizeZ.append(NumChanger.create(Dominion.config.getLimitSizeZ(), "/dominion set_config limit_size_z").setPageNumber(page).build());
limitSizeZ.append(Button.create("设置无限制", "/dominion set_config limit_size_z -1 " + page));
limitSizeZ.append(Button.create("设置无限制").setExecuteCommand("/dominion set_config limit_size_z -1 " + page).build());
}
view.add(limitSizeZ);
Line limitSizeY = Line.create()
.append(Component.text(" Y轴(垂直)"));
if (!Dominion.config.getLimitVert()) {
if (Dominion.config.getLimitSizeY() == -1) {
limitSizeY.append(Component.text("无限制")).append(Button.create("设置数值", "/dominion set_config limit_size_y 64 " + page));
limitSizeY.append(Component.text("无限制")).append(Button.create("设置数值").setExecuteCommand("/dominion set_config limit_size_y 64 " + page).build());
} else {
limitSizeY.append(NumChanger.create(Dominion.config.getLimitSizeY(), "/dominion set_config limit_size_y").setPageNumber(page).build());
limitSizeY.append(Button.create("设置无限制", "/dominion set_config limit_size_y -1 " + page));
limitSizeY.append(Button.create("设置无限制").setExecuteCommand("/dominion set_config limit_size_y -1 " + page).build());
}
} else {
limitSizeY.append(Component.text(Dominion.config.getLimitSizeY())
@ -62,11 +62,11 @@ public class DominionConfig {
if (Dominion.config.getLimitVert()) {
view.add(Line.create()
.append("垂直自动延伸")
.append(Button.createGreen("", "/dominion set_config limit_vert false " + page)));
.append(Button.createGreen("").setExecuteCommand("/dominion set_config limit_vert false " + page).build()));
} else {
view.add(Line.create()
.append("垂直自动延伸")
.append(Button.createRed("", "/dominion set_config limit_vert true " + page)));
.append(Button.createRed("").setExecuteCommand("/dominion set_config limit_vert true " + page).build()));
}
Line limitMaxY = Line.create()
.append(Component.text("最高Y坐标限制"));
@ -79,30 +79,30 @@ public class DominionConfig {
Line limitAmount = Line.create()
.append(Component.text("每个玩家领地数量限制"));
if (Dominion.config.getLimitAmount() == -1) {
limitAmount.append(Component.text("无限制")).append(Button.create("设置数值", "/dominion set_config limit_amount 3 " + page));
limitAmount.append(Component.text("无限制")).append(Button.create("设置数值").setExecuteCommand("/dominion set_config limit_amount 3 " + page).build());
} else {
limitAmount.append(NumChanger.create(Dominion.config.getLimitAmount(), "/dominion set_config limit_amount").setPageNumber(page).build());
limitAmount.append(Button.create("设置无限制", "/dominion set_config limit_amount -1 " + page));
limitAmount.append(Button.create("设置无限制").setExecuteCommand("/dominion set_config limit_amount -1 " + page).build());
}
view.add(limitAmount);
Line limitDepth = Line.create()
.append(Component.text("领地深度限制"));
if (Dominion.config.getLimitDepth() == -1) {
limitDepth.append(Component.text("无限制")).append(Button.create("设置数值", "/dominion set_config limit_depth 64 " + page));
limitDepth.append(Component.text("无限制")).append(Button.create("设置数值").setExecuteCommand("/dominion set_config limit_depth 64 " + page).build());
} else {
limitDepth.append(NumChanger.create(Dominion.config.getLimitDepth(), "/dominion set_config limit_depth").setPageNumber(page).build());
limitDepth.append(Button.create("设置无限制", "/dominion set_config limit_depth -1 " + page));
limitDepth.append(Button.create("设置无限制").setExecuteCommand("/dominion set_config limit_depth -1 " + page).build());
}
view.add(limitDepth);
if (Dominion.config.getLimitOpBypass()) {
view.add(Line.create()
.append("OP是否可以无视限制")
.append(Button.createGreen("", "/dominion set_config limit_op_bypass false " + page)));
.append(Button.createGreen("").setExecuteCommand("/dominion set_config limit_op_bypass false " + page).build()));
} else {
view.add(Line.create()
.append("OP是否可以无视限制")
.append(Button.createRed("", "/dominion set_config limit_op_bypass true " + page)));
.append(Button.createRed("").setExecuteCommand("/dominion set_config limit_op_bypass true " + page).build()));
}
Line autoCreateRadius = Line.create()
@ -113,11 +113,11 @@ public class DominionConfig {
if (Dominion.config.getTpEnable()) {
view.add(Line.create()
.append("领地传送功能")
.append(Button.createGreen("", "/dominion set_config tp_enable false " + page)));
.append(Button.createGreen("").setExecuteCommand("/dominion set_config tp_enable false " + page).build()));
} else {
view.add(Line.create()
.append("领地传送功能")
.append(Button.createRed("", "/dominion set_config tp_enable true " + page)));
.append(Button.createRed("").setExecuteCommand("/dominion set_config tp_enable true " + page).build()));
}
Line tpDelay = Line.create()
.append(Component.text(" 传送延迟(秒)"))
@ -138,11 +138,11 @@ public class DominionConfig {
if (Dominion.config.getEconomyOnlyXZ()) {
view.add(Line.create()
.append(" 仅计价平面积")
.append(Button.createGreen("", "/dominion set_config economy_only_xz false " + page)));
.append(Button.createGreen("").setExecuteCommand("/dominion set_config economy_only_xz false " + page).build()));
} else {
view.add(Line.create()
.append(" 仅计价平面积")
.append(Button.createRed("", "/dominion set_config economy_only_xz true " + page)));
.append(Button.createRed("").setExecuteCommand("/dominion set_config economy_only_xz true " + page).build()));
}
Line refund = Line.create()
.append(Component.text(" 删除/缩小领地退还比例"))

View File

@ -2,9 +2,9 @@ package cn.lunadeer.dominion.tuis;
import cn.lunadeer.dominion.Dominion;
import cn.lunadeer.dominion.dtos.DominionDTO;
import cn.lunadeer.dominion.utils.STUI.Button;
import cn.lunadeer.dominion.utils.STUI.Line;
import cn.lunadeer.dominion.utils.STUI.ListView;
import cn.lunadeer.minecraftpluginutils.stui.ListView;
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
import cn.lunadeer.minecraftpluginutils.stui.components.Line;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@ -34,422 +34,422 @@ public class DominionFlagInfo {
ListView view = ListView.create(10, "/dominion flag_info " + dominion.getName());
view.title("领地 " + dominion.getName() + " 默认权限")
.navigator(Line.create()
.append(Button.create("主菜单", "/dominion menu"))
.append(Button.create("我的领地", "/dominion list"))
.append(Button.create("管理界面", "/dominion manage " + dominion.getName()))
.append(Button.create("主菜单").setExecuteCommand("/dominion menu").build())
.append(Button.create("我的领地").setExecuteCommand("/dominion list").build())
.append(Button.create("管理界面").setExecuteCommand("/dominion manage " + dominion.getName()).build())
.append("权限列表"));
if (dominion.getAnchor()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set anchor false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set anchor false " + dominion.getName() + " " + page).build())
.append("重生锚"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set anchor true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set anchor true " + dominion.getName() + " " + page).build())
.append("重生锚"));
}
if (dominion.getAnimalKilling()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set animal_killing false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set animal_killing false " + dominion.getName() + " " + page).build())
.append("对动物造成伤害"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set animal_killing true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set animal_killing true " + dominion.getName() + " " + page).build())
.append("对动物造成伤害"));
}
if (dominion.getAnvil()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set anvil false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set anvil false " + dominion.getName() + " " + page).build())
.append("使用铁砧"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set anvil true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set anvil true " + dominion.getName() + " " + page).build())
.append("使用铁砧"));
}
if (dominion.getBeacon()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set beacon false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set beacon false " + dominion.getName() + " " + page).build())
.append("信标交互"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set beacon true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set beacon true " + dominion.getName() + " " + page).build())
.append("信标交互"));
}
if (dominion.getBed()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set bed false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set bed false " + dominion.getName() + " " + page).build())
.append("床交互"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set bed true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set bed true " + dominion.getName() + " " + page).build())
.append("床交互"));
}
if (dominion.getBrew()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set brew false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set brew false " + dominion.getName() + " " + page).build())
.append("使用酿造台"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set brew true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set brew true " + dominion.getName() + " " + page).build())
.append("使用酿造台"));
}
if (dominion.getBreak()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set break false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set break false " + dominion.getName() + " " + page).build())
.append("破坏方块"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set break true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set break true " + dominion.getName() + " " + page).build())
.append("破坏方块"));
}
if (dominion.getButton()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set button false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set button false " + dominion.getName() + " " + page).build())
.append("使用按钮"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set button true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set button true " + dominion.getName() + " " + page).build())
.append("使用按钮"));
}
if (dominion.getCake()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set cake false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set cake false " + dominion.getName() + " " + page).build())
.append("使用蛋糕"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set cake true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set cake true " + dominion.getName() + " " + page).build())
.append("使用蛋糕"));
}
if (dominion.getContainer()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set container false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set container false " + dominion.getName() + " " + page).build())
.append("箱子/木桶/潜影盒/盔甲架/展示框"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set container true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set container true " + dominion.getName() + " " + page).build())
.append("箱子/木桶/潜影盒/盔甲架/展示框"));
}
if (dominion.getCraft()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set craft false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set craft false " + dominion.getName() + " " + page).build())
.append("使用工作台"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set craft true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set craft true " + dominion.getName() + " " + page).build())
.append("使用工作台"));
}
if (dominion.getCreeperExplode()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set creeper_explode false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set creeper_explode false " + dominion.getName() + " " + page).build())
.append("苦力怕/凋零头颅/水晶爆炸"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set creeper_explode true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set creeper_explode true " + dominion.getName() + " " + page).build())
.append("苦力怕/凋零头颅/水晶爆炸"));
}
if (dominion.getComparer()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set comparer false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set comparer false " + dominion.getName() + " " + page).build())
.append("比较器交互"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set comparer true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set comparer true " + dominion.getName() + " " + page).build())
.append("比较器交互"));
}
if (dominion.getDoor()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set door false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set door false " + dominion.getName() + " " + page).build())
.append("门交互"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set door true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set door true " + dominion.getName() + " " + page).build())
.append("门交互"));
}
if (dominion.getDye()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set dye false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set dye false " + dominion.getName() + " " + page).build())
.append("染色"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set dye true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set dye true " + dominion.getName() + " " + page).build())
.append("染色"));
}
if (dominion.getEgg()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set egg false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set egg false " + dominion.getName() + " " + page).build())
.append("投掷鸡蛋"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set egg true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set egg true " + dominion.getName() + " " + page).build())
.append("投掷鸡蛋"));
}
if (dominion.getEnchant()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set enchant false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set enchant false " + dominion.getName() + " " + page).build())
.append("使用附魔台"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set enchant true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set enchant true " + dominion.getName() + " " + page).build())
.append("使用附魔台"));
}
if (dominion.getEnderMan()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set ender_man false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set ender_man false " + dominion.getName() + " " + page).build())
.append("末影人生成、瞬移"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set ender_man true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set ender_man true " + dominion.getName() + " " + page).build())
.append("末影人生成、瞬移"));
}
if (dominion.getEnderPearl()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set ender_pearl false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set ender_pearl false " + dominion.getName() + " " + page).build())
.append("投掷末影珍珠"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set ender_pearl true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set ender_pearl true " + dominion.getName() + " " + page).build())
.append("投掷末影珍珠"));
}
if (dominion.getFeed()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set feed false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set feed false " + dominion.getName() + " " + page).build())
.append("喂食"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set feed true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set feed true " + dominion.getName() + " " + page).build())
.append("喂食"));
}
if (dominion.getFireSpread()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set fire_spread false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set fire_spread false " + dominion.getName() + " " + page).build())
.append("火焰蔓延"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set fire_spread true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set fire_spread true " + dominion.getName() + " " + page).build())
.append("火焰蔓延"));
}
if (dominion.getFlowInProtection()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set flow_in_protection false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set flow_in_protection false " + dominion.getName() + " " + page).build())
.append("外部流体是否可以进入"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set flow_in_protection true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set flow_in_protection true " + dominion.getName() + " " + page).build())
.append("外部流体是否可以进入"));
}
if (dominion.getGlow()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set glow false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set glow false " + dominion.getName() + " " + page).build())
.append("玩家发光"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set glow true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set glow true " + dominion.getName() + " " + page).build())
.append("玩家发光"));
}
if (dominion.getHarvest()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set harvest false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set harvest false " + dominion.getName() + " " + page).build())
.append("收获"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set harvest true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set harvest true " + dominion.getName() + " " + page).build())
.append("收获"));
}
if (dominion.getHoney()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set honey false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set honey false " + dominion.getName() + " " + page).build())
.append("蜂巢交互"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set honey true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set honey true " + dominion.getName() + " " + page).build())
.append("蜂巢交互"));
}
if (dominion.getHook()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set hook false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set hook false " + dominion.getName() + " " + page).build())
.append("使用钓钩"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set hook true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set hook true " + dominion.getName() + " " + page).build())
.append("使用钓钩"));
}
if (dominion.getHopper()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set hopper false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set hopper false " + dominion.getName() + " " + page).build())
.append("漏斗/熔炉/发射器等特殊容器"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set hopper true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set hopper true " + dominion.getName() + " " + page).build())
.append("漏斗/熔炉/发射器等特殊容器"));
}
if (dominion.getIgnite()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set ignite false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set ignite false " + dominion.getName() + " " + page).build())
.append("点燃"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set ignite true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set ignite true " + dominion.getName() + " " + page).build())
.append("点燃"));
}
if (dominion.getLever()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set lever false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set lever false " + dominion.getName() + " " + page).build())
.append("使用拉杆"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set lever true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set lever true " + dominion.getName() + " " + page).build())
.append("使用拉杆"));
}
if (dominion.getMobDropItem()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set mob_drop_item false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set mob_drop_item false " + dominion.getName() + " " + page).build())
.append("生物战利品掉落"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set mob_drop_item true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set mob_drop_item true " + dominion.getName() + " " + page).build())
.append("生物战利品掉落"));
}
if (dominion.getMonsterKilling()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set monster_killing false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set monster_killing false " + dominion.getName() + " " + page).build())
.append("对怪物造成伤害"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set monster_killing true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set monster_killing true " + dominion.getName() + " " + page).build())
.append("对怪物造成伤害"));
}
if (dominion.getMove()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set move false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set move false " + dominion.getName() + " " + page).build())
.append("玩家移动"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set move true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set move true " + dominion.getName() + " " + page).build())
.append("玩家移动"));
}
if (dominion.getPlace()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set place false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set place false " + dominion.getName() + " " + page).build())
.append("放置方块"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set place true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set place true " + dominion.getName() + " " + page).build())
.append("放置方块"));
}
if (dominion.getPressure()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set pressure false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set pressure false " + dominion.getName() + " " + page).build())
.append("压力板交互"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set pressure true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set pressure true " + dominion.getName() + " " + page).build())
.append("压力板交互"));
}
if (dominion.getRiding()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set riding false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set riding false " + dominion.getName() + " " + page).build())
.append("骑乘载具"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set riding true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set riding true " + dominion.getName() + " " + page).build())
.append("骑乘载具"));
}
if (dominion.getRepeater()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set repeater false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set repeater false " + dominion.getName() + " " + page).build())
.append("中继器交互"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set repeater true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set repeater true " + dominion.getName() + " " + page).build())
.append("中继器交互"));
}
if (dominion.getShear()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set shear false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set shear false " + dominion.getName() + " " + page).build())
.append("剪羊毛"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set shear true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set shear true " + dominion.getName() + " " + page).build())
.append("剪羊毛"));
}
if (dominion.getShoot()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set shoot false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set shoot false " + dominion.getName() + " " + page).build())
.append("射箭/雪球/三叉戟"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set shoot true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set shoot true " + dominion.getName() + " " + page).build())
.append("射箭/雪球/三叉戟"));
}
if (dominion.getShowBorder()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set show_border false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set show_border false " + dominion.getName() + " " + page).build())
.append("玩家进入时是否显示领地边界"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set show_border true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set show_border true " + dominion.getName() + " " + page).build())
.append("玩家进入时是否显示领地边界"));
}
if (dominion.getTeleport()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set teleport false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set teleport false " + dominion.getName() + " " + page).build())
.append("领地传送"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set teleport true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set teleport true " + dominion.getName() + " " + page).build())
.append("领地传送"));
}
if (dominion.getTntExplode()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set tnt_explode false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set tnt_explode false " + dominion.getName() + " " + page).build())
.append("TNT爆炸"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set tnt_explode true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set tnt_explode true " + dominion.getName() + " " + page).build())
.append("TNT爆炸"));
}
if (dominion.getTrade()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set trade false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set trade false " + dominion.getName() + " " + page).build())
.append("交易"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set trade true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set trade true " + dominion.getName() + " " + page).build())
.append("交易"));
}
if (dominion.getTrample()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set trample false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set trample false " + dominion.getName() + " " + page).build())
.append("践踏耕地"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set trample true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set trample true " + dominion.getName() + " " + page).build())
.append("践踏耕地"));
}
if (dominion.getVehicleDestroy()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set vehicle_destroy false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set vehicle_destroy false " + dominion.getName() + " " + page).build())
.append("破坏载具"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set vehicle_destroy true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set vehicle_destroy true " + dominion.getName() + " " + page).build())
.append("破坏载具"));
}
if (dominion.getVehicleSpawn()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set vehicle_spawn false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set vehicle_spawn false " + dominion.getName() + " " + page).build())
.append("放置载具"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set vehicle_spawn true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set vehicle_spawn true " + dominion.getName() + " " + page).build())
.append("放置载具"));
}
if (dominion.getWitherSpawn()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set wither_spawn false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set wither_spawn false " + dominion.getName() + " " + page).build())
.append("凋零生成"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set wither_spawn true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set wither_spawn true " + dominion.getName() + " " + page).build())
.append("凋零生成"));
}
view.showOn(player, page);

View File

@ -2,9 +2,9 @@ package cn.lunadeer.dominion.tuis;
import cn.lunadeer.dominion.Dominion;
import cn.lunadeer.dominion.dtos.DominionDTO;
import cn.lunadeer.dominion.utils.STUI.Button;
import cn.lunadeer.dominion.utils.STUI.Line;
import cn.lunadeer.dominion.utils.STUI.ListView;
import cn.lunadeer.minecraftpluginutils.stui.ListView;
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
import cn.lunadeer.minecraftpluginutils.stui.components.Line;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@ -23,22 +23,22 @@ public class DominionManage {
}
if (noAuthToManage(player, dominion)) return;
Line size_info = Line.create()
.append(Button.create("详细信息", "/dominion info " + dominion.getName()))
.append(Button.create("详细信息").setExecuteCommand("/dominion info " + dominion.getName()).build())
.append("查看领地详细信息");
Line flag_info = Line.create()
.append(Button.create("权限设置", "/dominion flag_info " + dominion.getName()))
.append(Button.create("权限设置").setExecuteCommand("/dominion flag_info " + dominion.getName()).build())
.append("管理领地默认权限");
Line privilege_list = Line.create()
.append(Button.create("玩家权限", "/dominion privilege_list " + dominion.getName()))
.append(Button.create("玩家权限").setExecuteCommand("/dominion privilege_list " + dominion.getName()).build())
.append("管理玩家特权");
Line set_tp = Line.create()
.append(Button.create("设置传送点", "/dominion set_tp_location " + dominion.getName()))
.append(Button.create("设置传送点").setExecuteCommand("/dominion set_tp_location " + dominion.getName()).build())
.append("设置当前位置为此领地传送点");
ListView view = ListView.create(10, "/dominion manage " + dominion.getName());
view.title("领地 " + dominion.getName() + " 管理界面")
.navigator(Line.create()
.append(Button.create("主菜单", "/dominion menu"))
.append(Button.create("我的领地", "/dominion list"))
.append(Button.create("主菜单").setExecuteCommand("/dominion menu").build())
.append(Button.create("我的领地").setExecuteCommand("/dominion list").build())
.append(dominion.getName()))
.add(size_info)
.add(flag_info)

View File

@ -4,9 +4,9 @@ import cn.lunadeer.dominion.Dominion;
import cn.lunadeer.dominion.dtos.DominionDTO;
import cn.lunadeer.dominion.dtos.PlayerDTO;
import cn.lunadeer.dominion.dtos.PlayerPrivilegeDTO;
import cn.lunadeer.dominion.utils.STUI.Button;
import cn.lunadeer.dominion.utils.STUI.Line;
import cn.lunadeer.dominion.utils.STUI.ListView;
import cn.lunadeer.minecraftpluginutils.stui.ListView;
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
import cn.lunadeer.minecraftpluginutils.stui.components.Line;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@ -39,19 +39,19 @@ public class DominionPrivilegeList {
view.title("领地 " + dominion.getName() + " 玩家特权列表");
view.navigator(
Line.create()
.append(Button.create("主菜单", "/dominion menu"))
.append(Button.create("我的领地", "/dominion list"))
.append(Button.create("管理界面", "/dominion manage " + dominion.getName()))
.append(Button.create("主菜单").setExecuteCommand("/dominion menu").build())
.append(Button.create("我的领地").setExecuteCommand("/dominion list").build())
.append(Button.create("管理界面").setExecuteCommand("/dominion manage " + dominion.getName()).build())
.append("特权列表")
);
view.add(Line.create().append(Button.create("选择玩家创建特权", "/dominion select_player_create_privilege " + dominion.getName())));
view.add(Line.create().append(Button.create("选择玩家创建特权").setExecuteCommand("/dominion select_player_create_privilege " + dominion.getName()).build()));
for (PlayerPrivilegeDTO privilege : privileges) {
PlayerDTO p_player = PlayerDTO.select(privilege.getPlayerUUID());
if (p_player == null) continue;
view.add(Line.create()
.append(p_player.getLastKnownName())
.append(Button.createGreen("管理", "/dominion privilege_info " + p_player.getLastKnownName() + " " + dominion.getName()))
.append(Button.createRed("清除", "/dominion clear_privilege " + p_player.getLastKnownName() + " " + dominion.getName() + " b"))
.append(Button.createGreen("管理").setExecuteCommand("/dominion privilege_info " + p_player.getLastKnownName() + " " + dominion.getName()).build())
.append(Button.createRed("清除").setExecuteCommand("/dominion clear_privilege " + p_player.getLastKnownName() + " " + dominion.getName() + " b").build())
);
}
view.showOn(player, page);

View File

@ -4,10 +4,10 @@ import cn.lunadeer.dominion.Dominion;
import cn.lunadeer.dominion.controllers.PlayerController;
import cn.lunadeer.dominion.dtos.DominionDTO;
import cn.lunadeer.dominion.dtos.PlayerDTO;
import cn.lunadeer.dominion.utils.STUI.Button;
import cn.lunadeer.dominion.utils.STUI.Line;
import cn.lunadeer.dominion.utils.STUI.View;
import cn.lunadeer.minecraftpluginutils.ParticleRender;
import cn.lunadeer.minecraftpluginutils.stui.View;
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
import cn.lunadeer.minecraftpluginutils.stui.components.Line;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@ -45,8 +45,8 @@ public class DominionSizeInfo {
dominion.getTpLocation().getX() + " " + dominion.getTpLocation().getY() + " " + dominion.getTpLocation().getZ()
))
.actionBar(Line.create()
.append(Button.create("管理界面", "/dominion manage " + dominion.getName()))
.append(Button.create("权限列表", "/dominion flag_info " + dominion.getName())))
.append(Button.create("管理界面").setExecuteCommand("/dominion manage " + dominion.getName()).build())
.append(Button.create("权限列表").setExecuteCommand("/dominion flag_info " + dominion.getName()).build()))
.showOn(player);
ParticleRender.showBoxFace(Dominion.instance, player,
dominion.getLocation1(),

View File

@ -1,8 +1,8 @@
package cn.lunadeer.dominion.tuis;
import cn.lunadeer.dominion.utils.STUI.Button;
import cn.lunadeer.dominion.utils.STUI.Line;
import cn.lunadeer.dominion.utils.STUI.ListView;
import cn.lunadeer.minecraftpluginutils.stui.ListView;
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
import cn.lunadeer.minecraftpluginutils.stui.components.Line;
import net.kyori.adventure.text.TextComponent;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@ -24,14 +24,14 @@ public class ListDominion {
List<String> admin_dominions = playerAdminDominions(sender);
view.title("我的领地列表");
view.navigator(Line.create().append(Button.create("主菜单", "/dominion menu")).append("我的领地"));
view.navigator(Line.create().append(Button.create("主菜单").setExecuteCommand("/dominion menu").build()).append("我的领地"));
for (String dominion : own_dominions) {
TextComponent manage = Button.createGreen("管理", "/dominion manage " + dominion);
TextComponent delete = Button.createRed("删除", "/dominion delete " + dominion);
TextComponent manage = Button.createGreen("管理").setExecuteCommand("/dominion manage " + dominion).build();
TextComponent delete = Button.createRed("删除").setExecuteCommand("/dominion delete " + dominion).build();
view.add(Line.create().append(dominion).append(manage).append(delete));
}
for (String dominion : admin_dominions) {
TextComponent manage = Button.createGreen("管理", "/dominion manage " + dominion);
TextComponent manage = Button.createGreen("管理").setExecuteCommand("/dominion manage " + dominion).build();
view.add(Line.create().append(dominion).append(manage));
}
view.showOn(player, page);

View File

@ -1,11 +1,8 @@
package cn.lunadeer.dominion.tuis;
import cn.lunadeer.dominion.utils.STUI.Button;
import cn.lunadeer.dominion.utils.STUI.Line;
import cn.lunadeer.dominion.utils.STUI.ListView;
import cn.lunadeer.dominion.utils.STUI.ViewStyles;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.event.ClickEvent;
import cn.lunadeer.minecraftpluginutils.stui.ListView;
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
import cn.lunadeer.minecraftpluginutils.stui.components.Line;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@ -16,23 +13,22 @@ public class Menu {
Player player = playerOnly(sender);
if (player == null) return;
Line list = Line.create()
.append(Button.create("我的领地", "/dominion list"))
.append(Button.create("我的领地").setExecuteCommand("/dominion list").build())
.append("查看我的领地");
Line help = Line.create()
.append(Button.create("指令帮助", "/dominion help"))
.append(Button.create("指令帮助").setExecuteCommand("/dominion help").build())
.append("查看指令帮助");
Line link = Line.create()
.append(Component.text("[使用文档]", ViewStyles.action_color)
.clickEvent(ClickEvent.clickEvent(ClickEvent.Action.OPEN_URL, "https://ssl.lunadeer.cn:14448/doc/23/")))
.append(Button.create("使用文档").setOpenURL("https://ssl.lunadeer.cn:14448/doc/23/").build())
.append("在浏览器中打开使用文档");
Line config = Line.create()
.append(Button.create("系统配置", "/dominion config"))
.append(Button.create("系统配置").setExecuteCommand("/dominion config").build())
.append("查看/修改系统配置");
Line reload_cache = Line.create()
.append(Button.create("重载缓存", "/dominion reload_cache"))
.append(Button.create("重载缓存").setExecuteCommand("/dominion reload_cache").build())
.append("手动刷新缓存可解决一些玩家操作无效问题,不建议频繁操作");
Line reload_config = Line.create()
.append(Button.create("重载配置", "/dominion reload_config"))
.append(Button.create("重载配置").setExecuteCommand("/dominion reload_config").build())
.append("重载配置文件");
ListView view = ListView.create(10, "/dominion");
view.title("Dominion 领地系统")

View File

@ -4,9 +4,9 @@ import cn.lunadeer.dominion.Dominion;
import cn.lunadeer.dominion.dtos.DominionDTO;
import cn.lunadeer.dominion.dtos.PlayerDTO;
import cn.lunadeer.dominion.dtos.PlayerPrivilegeDTO;
import cn.lunadeer.dominion.utils.STUI.Button;
import cn.lunadeer.dominion.utils.STUI.Line;
import cn.lunadeer.dominion.utils.STUI.ListView;
import cn.lunadeer.minecraftpluginutils.stui.ListView;
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
import cn.lunadeer.minecraftpluginutils.stui.components.Line;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@ -47,352 +47,352 @@ public class PrivilegeInfo {
view.title("玩家 " + playerName + " 在领地 " + dominion.getName() + " 的特权信息");
view.navigator(
Line.create()
.append(Button.create("主菜单", "/dominion menu"))
.append(Button.create("我的领地", "/dominion list"))
.append(Button.create("管理界面", "/dominion manage " + dominion.getName()))
.append(Button.create("特权列表", "/dominion privilege_list " + dominion.getName()))
.append(Button.create("主菜单").setExecuteCommand("/dominion menu").build())
.append(Button.create("我的领地").setExecuteCommand("/dominion list").build())
.append(Button.create("管理界面").setExecuteCommand("/dominion manage " + dominion.getName()).build())
.append(Button.create("特权列表").setExecuteCommand("/dominion privilege_list " + dominion.getName()).build())
.append("特权信息")
);
if (privilege.getAdmin()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " admin false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " admin false " + dominion.getName() + " " + page).build())
.append("管理员"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " admin true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " admin true " + dominion.getName() + " " + page).build())
.append("管理员"));
}
if (privilege.getAnchor()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " anchor false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " anchor false " + dominion.getName() + " " + page).build())
.append("重生锚"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " anchor true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " anchor true " + dominion.getName() + " " + page).build())
.append("重生锚"));
}
if (privilege.getAnimalKilling()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " animal_killing false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " animal_killing false " + dominion.getName() + " " + page).build())
.append("动物伤害"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " animal_killing true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " animal_killing true " + dominion.getName() + " " + page).build())
.append("动物伤害"));
}
if (privilege.getAnvil()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " anvil false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " anvil false " + dominion.getName() + " " + page).build())
.append("使用铁砧"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " anvil true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " anvil true " + dominion.getName() + " " + page).build())
.append("使用铁砧"));
}
if (privilege.getBeacon()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " beacon false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " beacon false " + dominion.getName() + " " + page).build())
.append("信标交互"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " beacon true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " beacon true " + dominion.getName() + " " + page).build())
.append("信标交互"));
}
if (privilege.getBed()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " bed false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " bed false " + dominion.getName() + " " + page).build())
.append("床交互"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " bed true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " bed true " + dominion.getName() + " " + page).build())
.append("床交互"));
}
if (privilege.getBrew()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " brew false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " brew false " + dominion.getName() + " " + page).build())
.append("使用酿造台"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " brew true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " brew true " + dominion.getName() + " " + page).build())
.append("使用酿造台"));
}
if (privilege.getBreak()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " break false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " break false " + dominion.getName() + " " + page).build())
.append("破坏方块"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " break true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " break true " + dominion.getName() + " " + page).build())
.append("破坏方块"));
}
if (privilege.getButton()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " button false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " button false " + dominion.getName() + " " + page).build())
.append("使用按钮"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " button true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " button true " + dominion.getName() + " " + page).build())
.append("使用按钮"));
}
if (privilege.getCake()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " cake false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " cake false " + dominion.getName() + " " + page).build())
.append("使用蛋糕"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " cake true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " cake true " + dominion.getName() + " " + page).build())
.append("使用蛋糕"));
}
if (privilege.getContainer()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " container false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " container false " + dominion.getName() + " " + page).build())
.append("箱子/木桶/潜影盒/盔甲架/展示框"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " container true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " container true " + dominion.getName() + " " + page).build())
.append("箱子/木桶/潜影盒/盔甲架/展示框"));
}
if (privilege.getCraft()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " craft false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " craft false " + dominion.getName() + " " + page).build())
.append("使用工作台"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " craft true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " craft true " + dominion.getName() + " " + page).build())
.append("使用工作台"));
}
if (privilege.getComparer()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " comparer false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " comparer false " + dominion.getName() + " " + page).build())
.append("比较器交互"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " comparer true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " comparer true " + dominion.getName() + " " + page).build())
.append("比较器交互"));
}
if (privilege.getDoor()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " door false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " door false " + dominion.getName() + " " + page).build())
.append("门交互"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " door true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " door true " + dominion.getName() + " " + page).build())
.append("门交互"));
}
if (privilege.getDye()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " dye false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " dye false " + dominion.getName() + " " + page).build())
.append("染色"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " dye true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " dye true " + dominion.getName() + " " + page).build())
.append("染色"));
}
if (privilege.getEgg()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " egg false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " egg false " + dominion.getName() + " " + page).build())
.append("投掷鸡蛋"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " egg true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " egg true " + dominion.getName() + " " + page).build())
.append("投掷鸡蛋"));
}
if (privilege.getEnchant()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " enchant false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " enchant false " + dominion.getName() + " " + page).build())
.append("使用附魔台"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " enchant true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " enchant true " + dominion.getName() + " " + page).build())
.append("使用附魔台"));
}
if (privilege.getEnderPearl()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " ender_pearl false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " ender_pearl false " + dominion.getName() + " " + page).build())
.append("投掷末影珍珠"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " ender_pearl true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " ender_pearl true " + dominion.getName() + " " + page).build())
.append("投掷末影珍珠"));
}
if (privilege.getFeed()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " feed false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " feed false " + dominion.getName() + " " + page).build())
.append("喂食"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " feed true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " feed true " + dominion.getName() + " " + page).build())
.append("喂食"));
}
if (privilege.getGlow()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " glow false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " glow false " + dominion.getName() + " " + page).build())
.append("发光"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " glow true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " glow true " + dominion.getName() + " " + page).build())
.append("发光"));
}
if (privilege.getHarvest()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " harvest false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " harvest false " + dominion.getName() + " " + page).build())
.append("收获"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " harvest true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " harvest true " + dominion.getName() + " " + page).build())
.append("收获"));
}
if (privilege.getHoney()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " honey false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " honey false " + dominion.getName() + " " + page).build())
.append("蜂巢交互"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " honey true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " honey true " + dominion.getName() + " " + page).build())
.append("蜂巢交互"));
}
if (privilege.getHook()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " hook false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " hook false " + dominion.getName() + " " + page).build())
.append("使用钓钩"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " hook true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " hook true " + dominion.getName() + " " + page).build())
.append("使用钓钩"));
}
if (privilege.getHopper()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " hopper false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " hopper false " + dominion.getName() + " " + page).build())
.append("漏斗/熔炉/发射器等特殊容器"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " hopper true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " hopper true " + dominion.getName() + " " + page).build())
.append("漏斗/熔炉/发射器等特殊容器"));
}
if (privilege.getIgnite()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " ignite false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " ignite false " + dominion.getName() + " " + page).build())
.append("点燃"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " ignite true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " ignite true " + dominion.getName() + " " + page).build())
.append("点燃"));
}
if (privilege.getLever()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " lever false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " lever false " + dominion.getName() + " " + page).build())
.append("使用拉杆"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " lever true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " lever true " + dominion.getName() + " " + page).build())
.append("使用拉杆"));
}
if (privilege.getMonsterKilling()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " monster_killing false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " monster_killing false " + dominion.getName() + " " + page).build())
.append("怪物伤害"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " monster_killing true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " monster_killing true " + dominion.getName() + " " + page).build())
.append("怪物伤害"));
}
if (privilege.getMove()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " move false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " move false " + dominion.getName() + " " + page).build())
.append("玩家移动"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " move true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " move true " + dominion.getName() + " " + page).build())
.append("玩家移动"));
}
if (privilege.getPlace()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " place false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " place false " + dominion.getName() + " " + page).build())
.append("放置方块"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " place true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " place true " + dominion.getName() + " " + page).build())
.append("放置方块"));
}
if (privilege.getPressure()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " pressure false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " pressure false " + dominion.getName() + " " + page).build())
.append("压力板交互"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " pressure true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " pressure true " + dominion.getName() + " " + page).build())
.append("压力板交互"));
}
if (privilege.getRiding()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " riding false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " riding false " + dominion.getName() + " " + page).build())
.append("骑乘载具"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " riding true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " riding true " + dominion.getName() + " " + page).build())
.append("骑乘载具"));
}
if (privilege.getRepeater()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " repeater false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " repeater false " + dominion.getName() + " " + page).build())
.append("中继器交互"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " repeater true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " repeater true " + dominion.getName() + " " + page).build())
.append("中继器交互"));
}
if (privilege.getShear()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " shear false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " shear false " + dominion.getName() + " " + page).build())
.append("剪羊毛"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " shear true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " shear true " + dominion.getName() + " " + page).build())
.append("剪羊毛"));
}
if (privilege.getShoot()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " shoot false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " shoot false " + dominion.getName() + " " + page).build())
.append("射箭/雪球/三叉戟"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " shoot true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " shoot true " + dominion.getName() + " " + page).build())
.append("射箭/雪球/三叉戟"));
}
if (privilege.getTeleport()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " teleport false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " teleport false " + dominion.getName() + " " + page).build())
.append("领地传送"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " teleport true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " teleport true " + dominion.getName() + " " + page).build())
.append("领地传送"));
}
if (privilege.getTrade()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " trade false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " trade false " + dominion.getName() + " " + page).build())
.append("交易"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " trade true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " trade true " + dominion.getName() + " " + page).build())
.append("交易"));
}
if (privilege.getVehicleDestroy()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " vehicle_destroy false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " vehicle_destroy false " + dominion.getName() + " " + page).build())
.append("破坏载具"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " vehicle_destroy true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " vehicle_destroy true " + dominion.getName() + " " + page).build())
.append("破坏载具"));
}
if (privilege.getVehicleSpawn()) {
view.add(Line.create()
.append(Button.createGreen("", "/dominion set_privilege " + playerName + " vehicle_spawn false " + dominion.getName() + " " + page))
.append(Button.createGreen("").setExecuteCommand("/dominion set_privilege " + playerName + " vehicle_spawn false " + dominion.getName() + " " + page).build())
.append("放置载具"));
} else {
view.add(Line.create()
.append(Button.createRed("", "/dominion set_privilege " + playerName + " vehicle_spawn true " + dominion.getName() + " " + page))
.append(Button.createRed("").setExecuteCommand("/dominion set_privilege " + playerName + " vehicle_spawn true " + dominion.getName() + " " + page).build())
.append("放置载具"));
}
view.showOn(player, page);

View File

@ -2,9 +2,9 @@ package cn.lunadeer.dominion.tuis;
import cn.lunadeer.dominion.controllers.PlayerController;
import cn.lunadeer.dominion.dtos.PlayerDTO;
import cn.lunadeer.dominion.utils.STUI.Button;
import cn.lunadeer.dominion.utils.STUI.Line;
import cn.lunadeer.dominion.utils.STUI.ListView;
import cn.lunadeer.minecraftpluginutils.stui.ListView;
import cn.lunadeer.minecraftpluginutils.stui.components.Button;
import cn.lunadeer.minecraftpluginutils.stui.components.Line;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@ -26,7 +26,7 @@ public class SelectPlayer {
}
String dominion_name = args[1];
ListView view = ListView.create(10, "/dominion select_player_create_privilege " + dominion_name);
Line sub = Line.create().append("只能选择已经登录过的玩家").append(Button.create("返回", "/dominion privilege_list " + dominion_name));
Line sub = Line.create().append("只能选择已经登录过的玩家").append(Button.create("返回").setExecuteCommand("/dominion privilege_list " + dominion_name).build());
view.title("选择玩家以创建特权").subtitle(sub);
List<PlayerDTO> players = PlayerController.allPlayers();
for (PlayerDTO p : players) {
@ -34,8 +34,9 @@ public class SelectPlayer {
continue;
}
view.add(Line.create().
append(Button.create(p.getLastKnownName(),
"/dominion create_privilege " + p.getLastKnownName() + " " + dominion_name + " b")));
append(Button.create(p.getLastKnownName())
.setExecuteCommand("/dominion create_privilege " + p.getLastKnownName() + " " + dominion_name + " b")
.build()));
}
view.showOn(player, page);
}

View File

@ -1,22 +0,0 @@
package cn.lunadeer.dominion.utils.STUI;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent;
public class Button {
public static TextComponent create(String text, String command) {
return Component.text("[" + text + "]", ViewStyles.action_color)
.clickEvent(net.kyori.adventure.text.event.ClickEvent.clickEvent(net.kyori.adventure.text.event.ClickEvent.Action.RUN_COMMAND, command));
}
public static TextComponent createRed(String text, String command) {
return Component.text("[" + text + "]", ViewStyles.error_color)
.clickEvent(net.kyori.adventure.text.event.ClickEvent.clickEvent(net.kyori.adventure.text.event.ClickEvent.Action.RUN_COMMAND, command));
}
public static TextComponent createGreen(String text, String command) {
return Component.text("[" + text + "]", ViewStyles.success_color)
.clickEvent(net.kyori.adventure.text.event.ClickEvent.clickEvent(net.kyori.adventure.text.event.ClickEvent.Action.RUN_COMMAND, command));
}
}

View File

@ -1,57 +0,0 @@
package cn.lunadeer.dominion.utils.STUI;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent;
import java.util.ArrayList;
import java.util.List;
public class Line {
private String d = " - ";
private final List<Component> elements = new ArrayList<>();
public Line() {
}
public TextComponent build() {
TextComponent divider = Component.text(d, ViewStyles.sub_color);
TextComponent.Builder builder = Component.text();
for (int i = 0; i < elements.size(); i++) {
builder.append(elements.get(i));
if (i != elements.size() - 1) {
builder.append(divider);
}
}
return builder.build();
}
public static Line create() {
return new Line();
}
List<Component> getElements() {
return elements;
}
public Line append(TextComponent component) {
elements.add(component);
return this;
}
public Line setDivider(String d) {
this.d = d;
return this;
}
public Line append(Component component) {
elements.add(component);
return this;
}
public Line append(String component) {
elements.add(Component.text(component));
return this;
}
}

View File

@ -1,92 +0,0 @@
package cn.lunadeer.dominion.utils.STUI;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.List;
public class ListView {
private final Integer page_size;
private final List<Line> lines = new ArrayList<>();
private String command = "";
private final View view = View.create();
private ListView(int page_size, String command) {
super();
this.page_size = page_size;
this.command = command;
}
public static ListView create(int page_size, String command) {
return new ListView(page_size, command);
}
public ListView title(String title) {
view.title(title);
return this;
}
public ListView title(String title, String subtitle) {
view.title(title);
view.subtitle(subtitle);
return this;
}
public ListView subtitle(String subtitle) {
view.subtitle(subtitle);
return this;
}
public ListView subtitle(TextComponent subtitle) {
view.subtitle(subtitle);
return this;
}
public ListView subtitle(Line line) {
view.subtitle(line);
return this;
}
public ListView add(Line line) {
lines.add(line);
return this;
}
public ListView addLines(List<Line> lines) {
this.lines.addAll(lines);
return this;
}
public void showOn(Player player, Integer page) {
int offset = (page - 1) * page_size;
if (lines.isEmpty()) {
return;
}
if (offset >= lines.size() || offset < 0) {
return;
}
for (int i = offset; i < offset + page_size; i++) {
if (i >= lines.size()) {
for (int j = 0; j < page_size - lines.size() % page_size; j++) {
view.addLine(Line.create());
}
break;
}
view.addLine(lines.get(i));
}
view.actionBar(Pagination.create(page, lines.size(), page_size, this.command));
view.showOn(player);
}
public ListView navigator(Line line) {
Line nav = Line.create().setDivider("->").append(Component.text("导航", ViewStyles.main_color));
for (Component component : line.getElements()) {
nav.append(component);
}
view.subtitle(nav);
return this;
}
}

View File

@ -1,102 +0,0 @@
package cn.lunadeer.dominion.utils.STUI;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent;
import net.kyori.adventure.text.event.ClickEvent;
public class NumChanger {
private final Double value;
private final String changeCommand;
private Integer pageNumber;
private Double step;
private NumChanger(Double value, String changeCommand) {
this.value = value;
this.changeCommand = changeCommand;
this.step = 1.0;
}
private NumChanger(Double value, String changeCommand, Double step) {
this.value = value;
this.changeCommand = changeCommand;
this.step = step;
}
public NumChanger setPageNumber(Integer pageNumber) {
this.pageNumber = pageNumber;
return this;
}
public static NumChanger create(Double value, String changeCommand) {
return new NumChanger(value, changeCommand);
}
public static NumChanger create(Double value, String changeCommand, Double step) {
return new NumChanger(value, changeCommand, step);
}
public static NumChanger create(Float value, String changeCommand) {
return new NumChanger(value.doubleValue(), changeCommand);
}
public static NumChanger create(Float value, String changeCommand, Double step) {
return new NumChanger(value.doubleValue(), changeCommand, step);
}
public static NumChanger create(Integer value, String changeCommand) {
return new NumChanger(value.doubleValue(), changeCommand);
}
public static NumChanger create(Integer value, String changeCommand, Double step) {
return new NumChanger(value.doubleValue(), changeCommand, step);
}
private static String intIfNoDecimal(Double value) {
if (value % 1 == 0) {
return String.valueOf(value.intValue());
}
return String.valueOf(value);
}
public TextComponent build() {
TextComponent plus = Component.text("+").clickEvent(
ClickEvent.clickEvent(
ClickEvent.Action.RUN_COMMAND,
changeCommand + " " + intIfNoDecimal(value + step) + (pageNumber == null ? "" : " " + pageNumber)
)
).hoverEvent(
Component.text("增加" + intIfNoDecimal(step)).asHoverEvent()
).color(ViewStyles.action_color);
TextComponent minus = Component.text("-").clickEvent(
ClickEvent.clickEvent(
ClickEvent.Action.RUN_COMMAND,
changeCommand + " " + intIfNoDecimal(value - step) + (pageNumber == null ? "" : " " + pageNumber)
)
).hoverEvent(
Component.text("减少" + intIfNoDecimal(step)).asHoverEvent()
).color(ViewStyles.action_color);
TextComponent plus10 = Component.text(">>").clickEvent(
ClickEvent.clickEvent(
ClickEvent.Action.RUN_COMMAND,
changeCommand + " " + intIfNoDecimal(value + step * 10) + (pageNumber == null ? "" : " " + pageNumber)
)
).hoverEvent(
Component.text("增加" + intIfNoDecimal(step * 10)).asHoverEvent()
).color(ViewStyles.action_color);
TextComponent minus10 = Component.text("<<").clickEvent(
ClickEvent.clickEvent(
ClickEvent.Action.RUN_COMMAND,
changeCommand + " " + intIfNoDecimal(value - step * 10) + (pageNumber == null ? "" : " " + pageNumber)
)
).hoverEvent(
Component.text("减少" + intIfNoDecimal(step * 10)).asHoverEvent()
).color(ViewStyles.action_color);
return Component.text()
.append(minus10).append(minus)
.append(Component.text(" "))
.append(Component.text(intIfNoDecimal(value)))
.append(Component.text(" "))
.append(plus).append(plus10).build();
}
}

View File

@ -1,42 +0,0 @@
package cn.lunadeer.dominion.utils.STUI;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent;
import java.util.ArrayList;
import java.util.List;
import static cn.lunadeer.dominion.utils.STUI.ViewStyles.main_color;
import static cn.lunadeer.dominion.utils.STUI.ViewStyles.sub_color;
public class Pagination {
public static TextComponent create(int page, int item_size, int page_size, String command) {
// x/y [上一页] [下一页]
int page_count = (int) Math.ceil((double) item_size / page_size);
if (page_count == 0) {
page_count = 1;
}
List<Component> componentList = new ArrayList<>();
componentList.add(Component.text("", main_color));
componentList.add(Component.text(page, sub_color));
componentList.add(Component.text("/", main_color));
componentList.add(Component.text(page_count, sub_color));
componentList.add(Component.text("", main_color));
if (page > 1) {
componentList.add(Button.create("上一页", command + " " + (page - 1)));
} else {
componentList.add(Component.text("[上一页]", sub_color));
}
if (page < page_count) {
componentList.add(Button.create("下一页", command + " " + (page + 1)));
} else {
componentList.add(Component.text("[下一页]", sub_color));
}
TextComponent.Builder builder = Component.text();
for (Component component : componentList) {
builder.append(component);
}
return builder.build();
}
}

View File

@ -1,113 +0,0 @@
package cn.lunadeer.dominion.utils.STUI;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.List;
import static cn.lunadeer.dominion.utils.STUI.ViewStyles.main_color;
public class View {
protected TextComponent space = Component.text(" ");
protected TextComponent sub_title_decorate = Component.text("- ", main_color);
protected TextComponent line_decorate = Component.text("", main_color);
protected TextComponent action_decorate = Component.text("", main_color);
protected TextComponent title = Component.text(" ");
protected TextComponent subtitle = null;
protected List<TextComponent> content_lines = new ArrayList<>();
protected TextComponent actionbar = null;
protected TextComponent edge = Component.text("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━", main_color);
protected TextComponent divide_line = Component.text("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━", main_color);
public void showOn(Player player) {
// player.sendMessage(edge);
TextComponent.Builder builder = Component.text();
builder.append(Component.text("__/", main_color));
builder.append(space).append(title).append(space);
builder.append(Component.text("\\__", main_color));
player.sendMessage(builder.build());
if (subtitle != null) {
player.sendMessage(divide_line);
player.sendMessage(Component.text().append(sub_title_decorate).append(subtitle).build());
}
player.sendMessage(divide_line);
for (TextComponent content_line : content_lines) {
player.sendMessage(Component.text().append(line_decorate).append(content_line).build());
}
if (actionbar != null) {
player.sendMessage(divide_line);
player.sendMessage(Component.text().append(action_decorate).append(actionbar).build());
}
player.sendMessage(edge);
player.sendMessage(Component.text(" "));
}
public static View create() {
return new View();
}
public View title(String title) {
this.title = Component.text(title);
return this;
}
public View title(TextComponent title) {
this.title = title;
return this;
}
public View subtitle(String subtitle) {
this.subtitle = Component.text(subtitle);
return this;
}
public View subtitle(Line line) {
this.subtitle = line.build();
return this;
}
public View navigator(Line line) {
Line nav = Line.create().setDivider("->").append(Component.text("导航", ViewStyles.main_color));
for (Component component : line.getElements()) {
nav.append(component);
}
return this.subtitle(nav);
}
public View subtitle(TextComponent subtitle) {
this.subtitle = subtitle;
return this;
}
public View actionBar(TextComponent actionbar) {
this.actionbar = actionbar;
return this;
}
public View actionBar(String actionbar) {
this.actionbar = Component.text(actionbar);
return this;
}
public View actionBar(Line actionbar) {
this.actionbar = actionbar.build();
return this;
}
public View addLine(TextComponent component) {
this.content_lines.add(component);
return this;
}
public View addLine(String component) {
this.content_lines.add(Component.text(component));
return this;
}
public View addLine(Line component) {
this.content_lines.add(component.build());
return this;
}
}

View File

@ -1,11 +0,0 @@
package cn.lunadeer.dominion.utils.STUI;
import net.kyori.adventure.text.format.TextColor;
public class ViewStyles {
public static TextColor main_color = TextColor.color(0, 148, 213);
public static TextColor sub_color = TextColor.color(122, 122, 122);
public static TextColor action_color = TextColor.color(251, 255, 139);
public static TextColor error_color = TextColor.color(255, 96, 72);
public static TextColor success_color = TextColor.color(139, 255, 123);
}