From b52fce2479c0588cc143cd8524884fd10f8d6129 Mon Sep 17 00:00:00 2001 From: zhangyuheng Date: Fri, 12 Jul 2024 17:39:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=9D=83=E9=99=90=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E9=85=8D=E7=BD=AE=EF=BC=8C=E5=85=81=E8=AE=B8=E9=80=9A?= =?UTF-8?q?=E8=BF=87=E6=9D=83=E9=99=90=E8=8A=82=E7=82=B9=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E7=8E=A9=E5=AE=B6=E8=A1=8C=E4=B8=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- .../miniplayertitle/commands/Apis.java | 10 ---------- .../miniplayertitle/commands/PlayerManage.java | 7 +++---- .../miniplayertitle/commands/TitleManage.java | 11 ++++++----- .../commands/TitleShopSale.java | 8 ++++---- .../miniplayertitle/tuis/AllTitles.java | 2 +- .../cn/lunadeer/miniplayertitle/tuis/Menu.java | 2 +- .../miniplayertitle/tuis/SaleInfo.java | 18 +++++++++--------- src/main/resources/plugin.yml | 15 +++++++++++++-- 9 files changed, 38 insertions(+), 37 deletions(-) diff --git a/pom.xml b/pom.xml index dab4b7c..6b28504 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ cn.lunadeer MiniPlayerTitle - 4.2.8 + 4.3.0 jar MiniPlayerTitle diff --git a/src/main/java/cn/lunadeer/miniplayertitle/commands/Apis.java b/src/main/java/cn/lunadeer/miniplayertitle/commands/Apis.java index 8f3bd19..38d7964 100644 --- a/src/main/java/cn/lunadeer/miniplayertitle/commands/Apis.java +++ b/src/main/java/cn/lunadeer/miniplayertitle/commands/Apis.java @@ -13,16 +13,6 @@ import static cn.lunadeer.miniplayertitle.MiniPlayerTitle.usingPapi; public class Apis { - public static boolean notOpOrConsole(CommandSender sender) { - if (sender instanceof Player) { - Player player = (Player) sender; - if (!player.isOp()) { - Notification.warn(player, "你没有权限使用此命令"); - return true; - } - } - return false; - } public static void updateName(Player player, @Nullable TitleDTO title) { MiniPlayerTitle.instance.setPlayerUsingTitle(player.getUniqueId(), title); diff --git a/src/main/java/cn/lunadeer/miniplayertitle/commands/PlayerManage.java b/src/main/java/cn/lunadeer/miniplayertitle/commands/PlayerManage.java index 7fb4459..5a4f236 100644 --- a/src/main/java/cn/lunadeer/miniplayertitle/commands/PlayerManage.java +++ b/src/main/java/cn/lunadeer/miniplayertitle/commands/PlayerManage.java @@ -8,7 +8,6 @@ import org.bukkit.command.CommandSender; import java.time.LocalDateTime; -import static cn.lunadeer.miniplayertitle.commands.Apis.notOpOrConsole; public class PlayerManage { @@ -20,7 +19,7 @@ public class PlayerManage { * @param args String[] */ public static void addCoin(CommandSender sender, String[] args) { - if (notOpOrConsole(sender)) return; + if (!sender.hasPermission("mplt.admin")) return; try { PlayerInfoDTO playerInfo = PlayerInfoDTO.get(args[1]); if (playerInfo == null) { @@ -46,7 +45,7 @@ public class PlayerManage { * @param args String[] */ public static void setCoin(CommandSender sender, String[] args) { - if (notOpOrConsole(sender)) return; + if (!sender.hasPermission("mplt.admin")) return; try { PlayerInfoDTO playerInfo = PlayerInfoDTO.get(args[1]); if (playerInfo == null) { @@ -72,7 +71,7 @@ public class PlayerManage { * @param args String[] */ public static void grantTitle(CommandSender sender, String[] args) { - if (notOpOrConsole(sender)) return; + if (!sender.hasPermission("mplt.admin")) return; try { PlayerInfoDTO playerInfo = PlayerInfoDTO.get(args[1]); if (playerInfo == null) { diff --git a/src/main/java/cn/lunadeer/miniplayertitle/commands/TitleManage.java b/src/main/java/cn/lunadeer/miniplayertitle/commands/TitleManage.java index cd11e04..2ae69e9 100644 --- a/src/main/java/cn/lunadeer/miniplayertitle/commands/TitleManage.java +++ b/src/main/java/cn/lunadeer/miniplayertitle/commands/TitleManage.java @@ -11,7 +11,6 @@ import net.kyori.adventure.text.Component; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import static cn.lunadeer.miniplayertitle.commands.Apis.notOpOrConsole; import static cn.lunadeer.miniplayertitle.commands.Apis.updateName; public class TitleManage { @@ -23,7 +22,7 @@ public class TitleManage { * @param args String[] */ public static void createTitle(CommandSender sender, String[] args) { - if (notOpOrConsole(sender)) return; + if (!sender.hasPermission("mplt.admin")) return; if (args.length < 2) { Notification.warn(sender, "用法: /mplt create_title <称号名称> [称号描述]"); return; @@ -46,7 +45,7 @@ public class TitleManage { */ public static void deleteTitle(CommandSender sender, String[] args) { try { - if (notOpOrConsole(sender)) return; + if (!sender.hasPermission("mplt.admin")) return; if (args.length < 2) { Notification.warn(sender, "用法: /mplt delete_title <称号ID>"); return; @@ -80,7 +79,7 @@ public class TitleManage { */ public static void editTitleName(CommandSender sender, String[] args) { try { - if (notOpOrConsole(sender)) return; + if (!sender.hasPermission("mplt.admin")) return; if (args.length != 3) { Notification.warn(sender, "用法: /mplt set_title <称号ID> <称号名称>"); return; @@ -110,7 +109,7 @@ public class TitleManage { */ public static void editTitleDescription(CommandSender sender, String[] args) { try { - if (notOpOrConsole(sender)) return; + if (!sender.hasPermission("mplt.admin")) return; if (args.length != 3) { Notification.warn(sender, "用法: /mplt set_desc <称号ID> <称号描述>"); return; @@ -143,6 +142,7 @@ public class TitleManage { Notification.error(sender, "该命令只能由玩家执行"); return; } + if (!sender.hasPermission("mplt.command")) return; if (args.length < 2) { Notification.warn(sender, "用法: /mplt use_title <背包ID> [页码]"); return; @@ -201,6 +201,7 @@ public class TitleManage { Notification.error(sender, "该命令只能由玩家执行"); return; } + if (!sender.hasPermission("mplt.custom")) return; Player player = (Player) sender; if (!MiniPlayerTitle.config.isEnableCustom()) { Notification.error(sender, "自定义称号功能已关闭"); diff --git a/src/main/java/cn/lunadeer/miniplayertitle/commands/TitleShopSale.java b/src/main/java/cn/lunadeer/miniplayertitle/commands/TitleShopSale.java index 374065a..1da328b 100644 --- a/src/main/java/cn/lunadeer/miniplayertitle/commands/TitleShopSale.java +++ b/src/main/java/cn/lunadeer/miniplayertitle/commands/TitleShopSale.java @@ -16,7 +16,6 @@ import java.time.LocalDateTime; import java.util.List; import java.util.Objects; -import static cn.lunadeer.miniplayertitle.commands.Apis.notOpOrConsole; import static cn.lunadeer.miniplayertitle.tuis.Apis.getArgPage; import static cn.lunadeer.miniplayertitle.tuis.Apis.getLastArgsPage; @@ -30,7 +29,7 @@ public class TitleShopSale { * @param args String[] */ public static void setSale(CommandSender sender, String[] args) { - if (notOpOrConsole(sender)) return; + if (!sender.hasPermission("mplt.admin")) return; TitleShopDTO titleShop = TitleShopDTO.get(Integer.valueOf(args[2])); if (titleShop == null) { Notification.error(sender, "获取详情时出现错误,详情请查看控制台日志"); @@ -83,7 +82,7 @@ public class TitleShopSale { * @param args String[] */ public static void createSale(CommandSender sender, String[] args) { - if (notOpOrConsole(sender)) return; + if (!sender.hasPermission("mplt.admin")) return; TitleDTO title = TitleDTO.get(Integer.parseInt(args[1])); if (title == null) { Notification.error(sender, "获取称号详情时出现错误,详情请查看控制台日志"); @@ -108,7 +107,7 @@ public class TitleShopSale { * @param args String[] */ public static void deleteSale(CommandSender sender, String[] args) { - if (notOpOrConsole(sender)) return; + if (!sender.hasPermission("mplt.admin")) return; TitleShopDTO titleShop = TitleShopDTO.get(Integer.valueOf(args[1])); if (titleShop == null) { Notification.error(sender, "获取详情时出现错误"); @@ -138,6 +137,7 @@ public class TitleShopSale { Notification.error(sender, "该命令只能由玩家执行"); return; } + if (!sender.hasPermission("mplt.command")) return; Player player = (Player) sender; PlayerInfoDTO playerInfo = PlayerInfoDTO.get(player.getUniqueId()); if (playerInfo == null) { diff --git a/src/main/java/cn/lunadeer/miniplayertitle/tuis/AllTitles.java b/src/main/java/cn/lunadeer/miniplayertitle/tuis/AllTitles.java index 35e8796..55a1c54 100644 --- a/src/main/java/cn/lunadeer/miniplayertitle/tuis/AllTitles.java +++ b/src/main/java/cn/lunadeer/miniplayertitle/tuis/AllTitles.java @@ -32,7 +32,7 @@ public class AllTitles { Line line = Line.create() .append(title.getId().toString()) .append(title.getTitleColored()); - if (player.isOp()) { + if (player.hasPermission("mplt.admin")) { line.append(Button.createRed("删除").setExecuteCommand("/mplt delete_title " + title.getId() + " " + page).build()); line.append(Button.createGreen("创建商品").setExecuteCommand("/mplt create_sale " + title.getId()).build()); } diff --git a/src/main/java/cn/lunadeer/miniplayertitle/tuis/Menu.java b/src/main/java/cn/lunadeer/miniplayertitle/tuis/Menu.java index 20ae1ae..85b4241 100644 --- a/src/main/java/cn/lunadeer/miniplayertitle/tuis/Menu.java +++ b/src/main/java/cn/lunadeer/miniplayertitle/tuis/Menu.java @@ -58,7 +58,7 @@ public class Menu { Line all = Line.create() .append(Button.create("所有称号").setExecuteCommand("/mplt all_titles").build()).append("查看所有称号"); - if (player.isOp()) { + if (player.hasPermission("mplt.admin")) { view.add(Line.create().append("")); view.add(Line.create().append("---以下选项仅OP可见---")); view.add(all); diff --git a/src/main/java/cn/lunadeer/miniplayertitle/tuis/SaleInfo.java b/src/main/java/cn/lunadeer/miniplayertitle/tuis/SaleInfo.java index 6717dc9..951ac4e 100644 --- a/src/main/java/cn/lunadeer/miniplayertitle/tuis/SaleInfo.java +++ b/src/main/java/cn/lunadeer/miniplayertitle/tuis/SaleInfo.java @@ -46,11 +46,11 @@ public class SaleInfo { Line price = Line.create().append("价格: "); if (titleShop.getPrice() <= 0) { price.append("免费"); - if (player.isOp()) { + if (player.hasPermission("mplt.admin")) { price.append(Button.create("设置价格").setExecuteCommand("/mplt set_sale price " + titleShop.getId() + " 100 " + page).build()); } } else { - if (player.isOp()) { + if (player.hasPermission("mplt.admin")) { price.append(NumChanger.create(titleShop.getPrice(), "/mplt set_sale price " + titleShop.getId()).setPageNumber(page).build()); price.append(Button.create("设置为免费").setExecuteCommand("/mplt set_sale price " + titleShop.getId() + " 0 " + page).build()); } else { @@ -62,11 +62,11 @@ public class SaleInfo { Line day = Line.create().append("购买天数: "); if (titleShop.getDays() <= 0) { day.append("永久"); - if (player.isOp()) { + if (player.hasPermission("mplt.admin")) { day.append(Button.create("转为限时").setExecuteCommand("/mplt set_sale days " + titleShop.getId() + " 7 " + page).build()); } } else { - if (player.isOp()) { + if (player.hasPermission("mplt.admin")) { day.append(NumChanger.create(titleShop.getDays(), "/mplt set_sale days " + titleShop.getId()).setPageNumber(page).build()); day.append(Button.create("转为永久").setExecuteCommand("/mplt set_sale days " + titleShop.getId() + " -1 " + page).build()); } else { @@ -78,12 +78,12 @@ public class SaleInfo { Line amount = Line.create().append("剩余数量: "); if (titleShop.getAmount() == -1) { amount.append("无限"); - if (player.isOp()) { + if (player.hasPermission("mplt.admin")) { amount.append(Button.create("转为限量").setExecuteCommand("/mplt set_sale amount " + titleShop.getId() + " 0 " + page).build()); } } else { - if (player.isOp()) { + if (player.hasPermission("mplt.admin")) { amount.append(NumChanger.create(titleShop.getAmount(), "/mplt set_sale amount " + titleShop.getId()).setPageNumber(page).build()); amount.append(Button.create("转为无限").setExecuteCommand("/mplt set_sale amount " + titleShop.getId() + " -1 " + page).build()); } else { @@ -95,11 +95,11 @@ public class SaleInfo { Line end_at = Line.create().append("售卖结束时间: "); if (titleShop.getSaleEndAt() == null) { end_at.append("常驻"); - if (player.isOp()) { + if (player.hasPermission("mplt.admin")) { end_at.append(Button.create("转为限时").setExecuteCommand("/mplt set_sale end_at " + titleShop.getId() + " " + now_year + ":" + now_month + ":" + now_day + " " + page).build()); } } else { - if (player.isOp()) { + if (player.hasPermission("mplt.admin")) { end_at.append(Button.create("<<").setPreSufIx("", "").setHoverText("提前10天").setExecuteCommand("/mplt set_sale less_end_at " + titleShop.getId() + " 10 " + page).build() .append(Button.create("-").setPreSufIx("", "").setHoverText("提前1天").setExecuteCommand("/mplt set_sale less_end_at " + titleShop.getId() + " 1 " + page).build()) .append(Component.text(titleShop.getSaleEndAt().getYear() + "年" + titleShop.getSaleEndAt().getMonthValue() + "月" + titleShop.getSaleEndAt().getDayOfMonth() + "日")) @@ -120,7 +120,7 @@ public class SaleInfo { } else { operate.append(Button.createGreen("购买").setExecuteCommand("/mplt buy_sale " + titleShop.getId()).build()); } - if (player.isOp()) { + if (player.hasPermission("mplt.admin")) { operate.append(Button.create("删除").setExecuteCommand("/mplt delete_sale " + args[1] + " b").build()); } view.add(Line.create().append("---------------------")); diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index ed0f45f..f91d8cb 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -5,9 +5,20 @@ api-version: '1.20' description: 称号插件。 website: https://lunadeer.cn folia-supported: true -softdepend: [PlaceholderAPI, Vault] +softdepend: [ PlaceholderAPI, Vault ] commands: MiniPlayerTitle: description: 称号插件命令 usage: /mplt - aliases: [mplt] + aliases: [ mplt ] + permission: mplt.command +permissions: + mplt.command: + description: 普通命令 + default: true + mplt.custom: + description: 是否可以自定义称号 + default: true + mplt.admin: + description: 是否可以使用管理员命令 + default: op