make command tab more beautiful
This commit is contained in:
parent
2e293d89ad
commit
ae252cb6ab
2
pom.xml
2
pom.xml
@ -6,7 +6,7 @@
|
||||
|
||||
<groupId>cn.lunadeer</groupId>
|
||||
<artifactId>MiniPlayerTitle</artifactId>
|
||||
<version>1.13-beta</version>
|
||||
<version>1.14-beta</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>MiniPlayerTitle</name>
|
||||
|
@ -44,33 +44,53 @@ public class Commands implements TabExecutor {
|
||||
}
|
||||
switch (args[0]) {
|
||||
case "use":
|
||||
return use(sender, args);
|
||||
use(sender, args);
|
||||
return true;
|
||||
case "list":
|
||||
return list(sender, args);
|
||||
list(sender, args);
|
||||
return true;
|
||||
case "shop":
|
||||
return shop(sender, args);
|
||||
shop(sender, args);
|
||||
return true;
|
||||
case "buy":
|
||||
return buy(sender, args);
|
||||
buy(sender, args);
|
||||
return true;
|
||||
case "create":
|
||||
return AdminCommands.createTitle(sender, args);
|
||||
AdminCommands.createTitle(sender, args);
|
||||
return true;
|
||||
case "delete":
|
||||
return AdminCommands.deleteTitle(sender, args);
|
||||
AdminCommands.deleteTitle(sender, args);
|
||||
return true;
|
||||
case "setdesc":
|
||||
return AdminCommands.setTitleDescription(sender, args);
|
||||
AdminCommands.setTitleDescription(sender, args);
|
||||
return true;
|
||||
case "setname":
|
||||
return AdminCommands.setTitleName(sender, args);
|
||||
AdminCommands.setTitleName(sender, args);
|
||||
return true;
|
||||
case "addshop":
|
||||
return AdminCommands.addShop(sender, args);
|
||||
AdminCommands.addShop(sender, args);
|
||||
return true;
|
||||
case "removeshop":
|
||||
return AdminCommands.removeShop(sender, args);
|
||||
AdminCommands.removeShop(sender, args);
|
||||
return true;
|
||||
case "setprice":
|
||||
return AdminCommands.setPrice(sender, args);
|
||||
AdminCommands.setPrice(sender, args);
|
||||
return true;
|
||||
case "setamount":
|
||||
return AdminCommands.setAmount(sender, args);
|
||||
AdminCommands.setAmount(sender, args);
|
||||
return true;
|
||||
case "setendat":
|
||||
return AdminCommands.setSaleEndAt(sender, args);
|
||||
AdminCommands.setSaleEndAt(sender, args);
|
||||
return true;
|
||||
case "listall":
|
||||
return AdminCommands.listAllTitle(sender, args);
|
||||
AdminCommands.listAllTitle(sender, args);
|
||||
return true;
|
||||
case "addcoin":
|
||||
AdminCommands.addCoin(sender, args);
|
||||
return true;
|
||||
case "setcoin":
|
||||
AdminCommands.setCoin(sender, args);
|
||||
return true;
|
||||
default:
|
||||
printHelp(sender);
|
||||
return true;
|
||||
@ -93,8 +113,8 @@ public class Commands implements TabExecutor {
|
||||
}
|
||||
}
|
||||
|
||||
private void home_view(CommandSender sender){
|
||||
if (!(sender instanceof Player)){
|
||||
private void home_view(CommandSender sender) {
|
||||
if (!(sender instanceof Player)) {
|
||||
printHelp(sender);
|
||||
return;
|
||||
}
|
||||
@ -125,7 +145,7 @@ public class Commands implements TabExecutor {
|
||||
public @Nullable List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
|
||||
if (args.length == 1) {
|
||||
String[] player_cmd = {"use", "list", "shop", "buy"};
|
||||
String[] admin_cmd = {"create", "delete", "setdesc", "setname", "addshop", "removeshop", "setprice", "setamount", "setendat", "listall"};
|
||||
String[] admin_cmd = {"create", "delete", "setdesc", "setname", "addshop", "removeshop", "setprice", "setamount", "setendat", "listall", "addcoin", "setcoin"};
|
||||
List<String> res = new ArrayList<>();
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player) sender;
|
||||
@ -141,35 +161,69 @@ public class Commands implements TabExecutor {
|
||||
}
|
||||
return res;
|
||||
}
|
||||
switch (args[0]) {
|
||||
case "use":
|
||||
return Collections.singletonList("要使用的称号ID");
|
||||
case "list":
|
||||
case "shop":
|
||||
return Collections.singletonList("页数(可选)");
|
||||
case "buy":
|
||||
return Collections.singletonList("要购买的条目ID");
|
||||
case "create":
|
||||
return Collections.singletonList("<称号名称> <称号描述>");
|
||||
case "delete":
|
||||
case "addshop":
|
||||
return Collections.singletonList("<称号ID>");
|
||||
case "setdesc":
|
||||
return Collections.singletonList("<称号ID> <称号描述>");
|
||||
case "setname":
|
||||
return Collections.singletonList("<称号ID> <称号名称>");
|
||||
case "removeshop":
|
||||
return Collections.singletonList("<商品ID>");
|
||||
case "setprice":
|
||||
return Collections.singletonList("<商品ID> <价格> <天数>(-1为永久)");
|
||||
case "setamount":
|
||||
return Collections.singletonList("<商品ID> <数量> (-1为无限)");
|
||||
case "setendat":
|
||||
return Collections.singletonList("<商品ID> <结束时间YYYYMMDD>(-1为永久)");
|
||||
default:
|
||||
return Arrays.asList("use", "list", "shop", "buy");
|
||||
if (args.length == 2) {
|
||||
switch (args[0]) {
|
||||
case "use":
|
||||
return Collections.singletonList("要使用的称号ID");
|
||||
case "list":
|
||||
case "shop":
|
||||
case "listall":
|
||||
return Collections.singletonList("页数(可选)");
|
||||
case "buy":
|
||||
return Collections.singletonList("要购买的条目ID");
|
||||
case "create":
|
||||
return Collections.singletonList("<称号名称> <称号描述>");
|
||||
case "delete":
|
||||
case "addshop":
|
||||
return Collections.singletonList("<称号ID>");
|
||||
case "setdesc":
|
||||
return Collections.singletonList("<称号ID> <称号描述>");
|
||||
case "setname":
|
||||
return Collections.singletonList("<称号ID> <称号名称>");
|
||||
case "removeshop":
|
||||
return Collections.singletonList("<商品ID>");
|
||||
case "setprice":
|
||||
return Collections.singletonList("<商品ID> <价格> <天数>(-1为永久)");
|
||||
case "setamount":
|
||||
return Collections.singletonList("<商品ID> <数量>(-1为无限)");
|
||||
case "setendat":
|
||||
return Collections.singletonList("<商品ID> <结束时间YYYYMMDD>(-1为永久)");
|
||||
case "addcoin":
|
||||
case "setcoin":
|
||||
// return player list
|
||||
List<String> res = new ArrayList<>();
|
||||
for (Player player : MiniPlayerTitle.instance.getServer().getOnlinePlayers()) {
|
||||
res.add(player.getName());
|
||||
}
|
||||
return res;
|
||||
default:
|
||||
return Arrays.asList("use", "list", "shop", "buy");
|
||||
}
|
||||
}
|
||||
|
||||
if (args.length == 3) {
|
||||
switch (args[0]) {
|
||||
case "addcoin":
|
||||
case "setcoin":
|
||||
return Collections.singletonList("<金币数量>");
|
||||
case "create":
|
||||
case "setdesc":
|
||||
return Collections.singletonList("<称号描述>");
|
||||
case "setname":
|
||||
return Collections.singletonList("<称号名称>");
|
||||
case "setprice":
|
||||
return Collections.singletonList("<价格> <天数>(-1为永久)");
|
||||
case "setamount":
|
||||
return Collections.singletonList("<数量>(-1为无限)");
|
||||
case "setendat":
|
||||
return Collections.singletonList("<结束时间YYYYMMDD>(-1为永久)");
|
||||
}
|
||||
}
|
||||
if (args.length == 4) {
|
||||
if (args[0].equals("setprice")) {
|
||||
return Collections.singletonList("<天数>(-1为永久)");
|
||||
}
|
||||
}
|
||||
return Arrays.asList("use", "list", "shop", "buy");
|
||||
}
|
||||
|
||||
|
||||
|
@ -2,50 +2,56 @@ package cn.lunadeer.miniplayertitle.commands;
|
||||
|
||||
import cn.lunadeer.miniplayertitle.SaleTitle;
|
||||
import cn.lunadeer.miniplayertitle.Title;
|
||||
import cn.lunadeer.miniplayertitle.XPlayer;
|
||||
import cn.lunadeer.miniplayertitle.utils.Notification;
|
||||
import cn.lunadeer.miniplayertitle.utils.XLogger;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class AdminCommands {
|
||||
public static boolean createTitle(CommandSender sender, String[] args) {
|
||||
public static void createTitle(CommandSender sender, String[] args) {
|
||||
if (sender instanceof org.bukkit.entity.Player) {
|
||||
Player player = (org.bukkit.entity.Player) sender;
|
||||
if (!player.isOp()) {
|
||||
XLogger.warn(player, "你没有权限执行该命令");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (args.length != 3) {
|
||||
Notification.warn(sender, "用法: /mplt create <称号名称> <称号描述>");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
Title title = Title.create(args[1], args[2]);
|
||||
if (title != null) {
|
||||
Notification.info(sender, Component.text("成功创建称号: [" + title.getId() + "]").append(title.getTitle()));
|
||||
} else {
|
||||
Notification.error(sender, "创建称号失败");
|
||||
}
|
||||
Title.create(args[1], args[2]);
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean deleteTitle(CommandSender sender, String[] args) {
|
||||
public static void deleteTitle(CommandSender sender, String[] args) {
|
||||
if (sender instanceof org.bukkit.entity.Player) {
|
||||
Player player = (org.bukkit.entity.Player) sender;
|
||||
if (!player.isOp()) {
|
||||
XLogger.warn(player, "你没有权限执行该命令");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (args.length != 2) {
|
||||
Notification.warn(sender, "用法: /mplt delete <称号ID>");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
Title.delete(Integer.parseInt(args[1]));
|
||||
return true;
|
||||
Notification.info(sender, "已删除称号");
|
||||
}
|
||||
|
||||
public static boolean listAllTitle(CommandSender sender, String[] args) {
|
||||
public static void listAllTitle(CommandSender sender, String[] args) {
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player) sender;
|
||||
if (!player.isOp()) {
|
||||
XLogger.warn(player, "你没有权限执行该命令");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
int page = 1;
|
||||
@ -54,58 +60,57 @@ public class AdminCommands {
|
||||
page = Integer.parseInt(args[1]);
|
||||
} catch (Exception e) {
|
||||
Notification.error(sender, "页数格式错误");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
Title.listAllTitle(sender, page);
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean setTitleDescription(CommandSender sender, String[] args) {
|
||||
public static void setTitleDescription(CommandSender sender, String[] args) {
|
||||
if (sender instanceof org.bukkit.entity.Player) {
|
||||
Player player = (org.bukkit.entity.Player) sender;
|
||||
if (!player.isOp()) {
|
||||
XLogger.warn(player, "你没有权限执行该命令");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (args.length != 3) {
|
||||
Notification.warn(sender, "用法: /mplt setdesc <称号ID> <称号描述>");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
Title title = new Title(Integer.parseInt(args[1]));
|
||||
title.setDescription(args[2]);
|
||||
return true;
|
||||
Notification.info(sender, "已设置称号描述");
|
||||
}
|
||||
|
||||
public static boolean setTitleName(CommandSender sender, String[] args) {
|
||||
public static void setTitleName(CommandSender sender, String[] args) {
|
||||
if (sender instanceof org.bukkit.entity.Player) {
|
||||
Player player = (org.bukkit.entity.Player) sender;
|
||||
if (!player.isOp()) {
|
||||
XLogger.warn(player, "你没有权限执行该命令");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (args.length != 3) {
|
||||
Notification.warn(sender, "用法: /mplt setname <称号ID> <称号名称>");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
Title title = new Title(Integer.parseInt(args[1]));
|
||||
title.setTitle(args[2]);
|
||||
return true;
|
||||
Notification.info(sender, "已设置称号名称");
|
||||
}
|
||||
|
||||
public static boolean addShop(CommandSender sender, String[] args) {
|
||||
public static void addShop(CommandSender sender, String[] args) {
|
||||
if (sender instanceof org.bukkit.entity.Player) {
|
||||
Player player = (org.bukkit.entity.Player) sender;
|
||||
if (!player.isOp()) {
|
||||
XLogger.warn(player, "你没有权限执行该命令");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (args.length != 2) {
|
||||
Notification.warn(sender, "用法: /mplt addshop <称号ID>");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
SaleTitle title = SaleTitle.create(Integer.parseInt(args[1]));
|
||||
if (title == null) {
|
||||
@ -114,79 +119,134 @@ public class AdminCommands {
|
||||
Notification.info(sender, "已添加称号到商店, 商品ID: " + title.getId());
|
||||
Notification.info(sender, title.getTitle());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean removeShop(CommandSender sender, String[] args) {
|
||||
public static void removeShop(CommandSender sender, String[] args) {
|
||||
if (sender instanceof org.bukkit.entity.Player) {
|
||||
Player player = (org.bukkit.entity.Player) sender;
|
||||
if (!player.isOp()) {
|
||||
XLogger.warn(player, "你没有权限执行该命令");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (args.length != 2) {
|
||||
Notification.warn(sender, "用法: /mplt removeshop <商品ID>");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
SaleTitle.delete(Integer.parseInt(args[1]));
|
||||
return true;
|
||||
Notification.info(sender, "已从商店移除商品");
|
||||
}
|
||||
|
||||
public static boolean setPrice(CommandSender sender, String[] args) {
|
||||
public static void setPrice(CommandSender sender, String[] args) {
|
||||
if (sender instanceof org.bukkit.entity.Player) {
|
||||
Player player = (org.bukkit.entity.Player) sender;
|
||||
if (!player.isOp()) {
|
||||
XLogger.warn(player, "你没有权限执行该命令");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (args.length != 4) {
|
||||
Notification.warn(sender, "用法: /mplt setprice <商品ID> <价格> <天数>(-1为永久)");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
SaleTitle.setPrice(Integer.parseInt(args[1]), Integer.parseInt(args[2]));
|
||||
SaleTitle.setDays(Integer.parseInt(args[1]), Integer.parseInt(args[3]));
|
||||
return true;
|
||||
Notification.info(sender, "已设置商品价格");
|
||||
}
|
||||
|
||||
public static boolean setAmount(CommandSender sender, String[] args) {
|
||||
public static void setAmount(CommandSender sender, String[] args) {
|
||||
if (sender instanceof org.bukkit.entity.Player) {
|
||||
Player player = (org.bukkit.entity.Player) sender;
|
||||
if (!player.isOp()) {
|
||||
XLogger.warn(player, "你没有权限执行该命令");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (args.length != 3) {
|
||||
Notification.warn(sender, "用法: /mplt setamount <商品ID> <数量>(-1为无限)");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
SaleTitle.setAmount(Integer.parseInt(args[1]), Integer.parseInt(args[2]));
|
||||
return true;
|
||||
Notification.info(sender, "已设置商品数量");
|
||||
}
|
||||
|
||||
public static boolean setSaleEndAt(CommandSender sender, String[] args) {
|
||||
public static void setSaleEndAt(CommandSender sender, String[] args) {
|
||||
if (sender instanceof org.bukkit.entity.Player) {
|
||||
Player player = (org.bukkit.entity.Player) sender;
|
||||
if (!player.isOp()) {
|
||||
XLogger.warn(player, "你没有权限执行该命令");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (args.length != 3) {
|
||||
Notification.warn(sender, "用法: /mplt setendat <商品ID> <时间YYYYMMDD>(-1为永久)");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
long time_stamp;
|
||||
try {
|
||||
time_stamp = Long.parseLong(args[2]);
|
||||
} catch (Exception e) {
|
||||
Notification.error(sender, "时间格式错误");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
|
||||
SaleTitle.setSaleEndAt(Integer.parseInt(args[1]), time_stamp);
|
||||
return true;
|
||||
Notification.info(sender, "已设置商品结束时间");
|
||||
}
|
||||
|
||||
public static void addCoin(CommandSender sender, String[] args) {
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player) sender;
|
||||
if (!player.isOp()) {
|
||||
XLogger.warn(player, "你没有权限执行该命令");
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (args.length != 3) {
|
||||
Notification.warn(sender, "用法: /mplt addcoin <玩家> <数量>");
|
||||
return;
|
||||
}
|
||||
Player target = sender.getServer().getPlayer(args[1]);
|
||||
if (target == null) {
|
||||
Notification.error(sender, "玩家不在线");
|
||||
return;
|
||||
}
|
||||
int amount;
|
||||
try {
|
||||
amount = Integer.parseInt(args[2]);
|
||||
} catch (Exception e) {
|
||||
Notification.error(sender, "数量格式错误");
|
||||
return;
|
||||
}
|
||||
new XPlayer(target).add_coin(amount);
|
||||
Notification.info(sender, "已给予玩家 " + target.getName() + " " + amount + " 称号币");
|
||||
}
|
||||
|
||||
public static void setCoin(CommandSender sender, String[] args) {
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player) sender;
|
||||
if (!player.isOp()) {
|
||||
XLogger.warn(player, "你没有权限执行该命令");
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (args.length != 3) {
|
||||
Notification.warn(sender, "用法: /mplt setcoin <玩家> <数量>");
|
||||
return;
|
||||
}
|
||||
Player target = sender.getServer().getPlayer(args[1]);
|
||||
if (target == null) {
|
||||
Notification.error(sender, "玩家不在线");
|
||||
return;
|
||||
}
|
||||
int amount;
|
||||
try {
|
||||
amount = Integer.parseInt(args[2]);
|
||||
} catch (Exception e) {
|
||||
Notification.error(sender, "数量格式错误");
|
||||
return;
|
||||
}
|
||||
new XPlayer(target).set_coin(amount);
|
||||
Notification.info(sender, "已设置玩家 " + target.getName() + " 称号币为 " + amount);
|
||||
}
|
||||
}
|
||||
|
@ -8,27 +8,27 @@ import cn.lunadeer.miniplayertitle.utils.XLogger;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class PlayerCommands {
|
||||
public static boolean use(CommandSender sender, String[] args) {
|
||||
public static void use(CommandSender sender, String[] args) {
|
||||
if (!(sender instanceof org.bukkit.entity.Player)) {
|
||||
XLogger.warn("该命令只能由玩家执行");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
org.bukkit.entity.Player player = (org.bukkit.entity.Player) sender;
|
||||
if (args.length != 2) {
|
||||
Notification.warn(player, "用法: /mplt use <称号ID>");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
|
||||
XPlayer xPlayer = new XPlayer(player);
|
||||
Integer title_id = Integer.parseInt(args[1]);
|
||||
xPlayer.updateUsingTitle(title_id);
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
|
||||
public static boolean list(CommandSender sender, String[] args) {
|
||||
public static void list(CommandSender sender, String[] args) {
|
||||
if (!(sender instanceof org.bukkit.entity.Player)) {
|
||||
XLogger.warn("该命令只能由玩家执行");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
org.bukkit.entity.Player player = (org.bukkit.entity.Player) sender;
|
||||
int page = 1;
|
||||
@ -37,15 +37,15 @@ public class PlayerCommands {
|
||||
page = Integer.parseInt(args[1]);
|
||||
} catch (Exception e) {
|
||||
Notification.error(player, "页数格式错误");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
XPlayer xPlayer = new XPlayer(player);
|
||||
xPlayer.openBackpack(page);
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
|
||||
public static boolean shop(CommandSender sender, String[] args) {
|
||||
public static void shop(CommandSender sender, String[] args) {
|
||||
int page = 1;
|
||||
if (args.length == 2) {
|
||||
try {
|
||||
@ -54,45 +54,45 @@ public class PlayerCommands {
|
||||
}
|
||||
}
|
||||
Shop.open(sender, page);
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
|
||||
public static boolean buy(CommandSender sender, String[] args) {
|
||||
public static void buy(CommandSender sender, String[] args) {
|
||||
if (!(sender instanceof org.bukkit.entity.Player)) {
|
||||
XLogger.warn("该命令只能由玩家执行");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
org.bukkit.entity.Player player = (org.bukkit.entity.Player) sender;
|
||||
if (args.length != 2) {
|
||||
Notification.warn(player, "用法: /mplt buy <称号ID>");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
XPlayer xPlayer = new XPlayer(player);
|
||||
Integer sale_id = Integer.parseInt(args[1]);
|
||||
SaleTitle saleTitle = Shop.getSaleTitles().get(sale_id);
|
||||
if (saleTitle == null) {
|
||||
Notification.error(player, "该称号不存在");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
xPlayer.buyTitle(saleTitle);
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
|
||||
public static boolean custom(CommandSender sender, String[] args) {
|
||||
public static void custom(CommandSender sender, String[] args) {
|
||||
if (!(sender instanceof org.bukkit.entity.Player)) {
|
||||
XLogger.warn("该命令只能由玩家执行");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
org.bukkit.entity.Player player = (org.bukkit.entity.Player) sender;
|
||||
if (args.length != 2) {
|
||||
Notification.warn(player, "用法: /mplt custom <称号>");
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
// todo add custom title
|
||||
// add title
|
||||
// description = player.getDisplayName() + "的自定义称号";
|
||||
// add player title
|
||||
// expire_at = -1
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user