新增授予玩家称号指令
This commit is contained in:
parent
1e661badc2
commit
c7d8baf885
2
pom.xml
2
pom.xml
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<groupId>cn.lunadeer</groupId>
|
<groupId>cn.lunadeer</groupId>
|
||||||
<artifactId>MiniPlayerTitle</artifactId>
|
<artifactId>MiniPlayerTitle</artifactId>
|
||||||
<version>4.0.0</version>
|
<version>4.1.0</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>MiniPlayerTitle</name>
|
<name>MiniPlayerTitle</name>
|
||||||
|
@ -78,6 +78,9 @@ public class Commands implements TabExecutor {
|
|||||||
case "set_coin": // mplt set_coin <玩家名称> <称号币数量>
|
case "set_coin": // mplt set_coin <玩家名称> <称号币数量>
|
||||||
PlayerManage.setCoin(sender, args);
|
PlayerManage.setCoin(sender, args);
|
||||||
break;
|
break;
|
||||||
|
case "grant_title": // mplt grant_title <玩家名称> <称号> <描述> [天数]
|
||||||
|
PlayerManage.grantTitle(sender, args);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -89,7 +92,9 @@ public class Commands implements TabExecutor {
|
|||||||
if (args.length == 1) {
|
if (args.length == 1) {
|
||||||
return Arrays.asList("menu", "all_titles", "my_titles", "shop", "custom_info", "sale_info",
|
return Arrays.asList("menu", "all_titles", "my_titles", "shop", "custom_info", "sale_info",
|
||||||
"create_sale", "set_sale", "delete_sale", "buy_sale", "use_title", "create_title",
|
"create_sale", "set_sale", "delete_sale", "buy_sale", "use_title", "create_title",
|
||||||
"delete_title", "edit_title_name", "edit_title_desc", "custom_title", "add_coin", "set_coin");
|
"delete_title", "edit_title_name", "edit_title_desc", "custom_title", "add_coin", "set_coin",
|
||||||
|
"grant_title"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
if (args.length == 2) {
|
if (args.length == 2) {
|
||||||
switch (args[0]) {
|
switch (args[0]) {
|
||||||
@ -111,6 +116,7 @@ public class Commands implements TabExecutor {
|
|||||||
return Collections.singletonList("<称号内容>");
|
return Collections.singletonList("<称号内容>");
|
||||||
case "add_coin":
|
case "add_coin":
|
||||||
case "set_coin":
|
case "set_coin":
|
||||||
|
case "grant_title":
|
||||||
return PlayerInfoDTO.playerNameList();
|
return PlayerInfoDTO.playerNameList();
|
||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
@ -129,6 +135,8 @@ public class Commands implements TabExecutor {
|
|||||||
case "add_coin":
|
case "add_coin":
|
||||||
case "set_coin":
|
case "set_coin":
|
||||||
return Collections.singletonList("<数量>");
|
return Collections.singletonList("<数量>");
|
||||||
|
case "grant_title":
|
||||||
|
return Collections.singletonList("<称号>");
|
||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -137,6 +145,16 @@ public class Commands implements TabExecutor {
|
|||||||
switch (args[0]) {
|
switch (args[0]) {
|
||||||
case "set_sale":
|
case "set_sale":
|
||||||
return Collections.singletonList("<值>");
|
return Collections.singletonList("<值>");
|
||||||
|
case "grant_title":
|
||||||
|
return Collections.singletonList("<描述>");
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (args.length == 5) {
|
||||||
|
switch (args[0]) {
|
||||||
|
case "grant_title":
|
||||||
|
return Collections.singletonList("<天数(默认永久)>");
|
||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -1,21 +1,15 @@
|
|||||||
package cn.lunadeer.miniplayertitle;
|
package cn.lunadeer.miniplayertitle;
|
||||||
|
|
||||||
import cn.lunadeer.minecraftpluginutils.Notification;
|
|
||||||
import cn.lunadeer.minecraftpluginutils.XLogger;
|
import cn.lunadeer.minecraftpluginutils.XLogger;
|
||||||
import cn.lunadeer.miniplayertitle.dtos.PlayerInfoDTO;
|
import cn.lunadeer.miniplayertitle.dtos.PlayerInfoDTO;
|
||||||
import cn.lunadeer.miniplayertitle.dtos.PlayerTitleDTO;
|
import cn.lunadeer.miniplayertitle.dtos.PlayerTitleDTO;
|
||||||
import cn.lunadeer.miniplayertitle.dtos.TitleDTO;
|
import cn.lunadeer.miniplayertitle.dtos.TitleDTO;
|
||||||
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
||||||
import net.kyori.adventure.text.format.TextColor;
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.OfflinePlayer;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import static cn.lunadeer.miniplayertitle.commands.Apis.updateName;
|
|
||||||
|
|
||||||
public class Expansion extends PlaceholderExpansion {
|
public class Expansion extends PlaceholderExpansion {
|
||||||
|
|
||||||
private final JavaPlugin plugin;
|
private final JavaPlugin plugin;
|
||||||
|
@ -2,8 +2,12 @@ package cn.lunadeer.miniplayertitle.commands;
|
|||||||
|
|
||||||
import cn.lunadeer.minecraftpluginutils.Notification;
|
import cn.lunadeer.minecraftpluginutils.Notification;
|
||||||
import cn.lunadeer.miniplayertitle.dtos.PlayerInfoDTO;
|
import cn.lunadeer.miniplayertitle.dtos.PlayerInfoDTO;
|
||||||
|
import cn.lunadeer.miniplayertitle.dtos.PlayerTitleDTO;
|
||||||
|
import cn.lunadeer.miniplayertitle.dtos.TitleDTO;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
import static cn.lunadeer.miniplayertitle.commands.Apis.notOpOrConsole;
|
import static cn.lunadeer.miniplayertitle.commands.Apis.notOpOrConsole;
|
||||||
|
|
||||||
public class PlayerManage {
|
public class PlayerManage {
|
||||||
@ -59,4 +63,40 @@ public class PlayerManage {
|
|||||||
Notification.error(sender, "给玩家设置称号币时出错:%s", e.getMessage());
|
Notification.error(sender, "给玩家设置称号币时出错:%s", e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 直接授予玩家某称号
|
||||||
|
* mplt grant_title <玩家名称> <称号> <描述> [天数]
|
||||||
|
*
|
||||||
|
* @param sender CommandSender
|
||||||
|
* @param args String[]
|
||||||
|
*/
|
||||||
|
public static void grantTitle(CommandSender sender, String[] args) {
|
||||||
|
if (notOpOrConsole(sender)) return;
|
||||||
|
try {
|
||||||
|
PlayerInfoDTO playerInfo = PlayerInfoDTO.get(args[1]);
|
||||||
|
if (playerInfo == null) {
|
||||||
|
Notification.error(sender, "玩家不存在");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String title = args[2];
|
||||||
|
String description = args[3];
|
||||||
|
int days = args.length == 5 ? Integer.parseInt(args[4]) : -1;
|
||||||
|
TitleDTO titleDTO = TitleDTO.create(title, description);
|
||||||
|
if (titleDTO == null) {
|
||||||
|
Notification.error(sender, "创建称号失败,详细错误请查看控制台日志");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
LocalDateTime expire = days == -1 ? null : LocalDateTime.now().plusDays(days);
|
||||||
|
PlayerTitleDTO playerTitle = PlayerTitleDTO.create(playerInfo.getUuid(), titleDTO, expire);
|
||||||
|
if (playerTitle == null) {
|
||||||
|
Notification.error(sender, "授予玩家称号失败,详细错误请查看控制台日志");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
playerInfo.setUsingTitle(titleDTO);
|
||||||
|
Notification.info(sender, "成功给玩家 %s 授予称号 %s", playerInfo.getLastUseName(), titleDTO.getTitlePlainText());
|
||||||
|
} catch (Exception e) {
|
||||||
|
Notification.error(sender, "授予玩家称号时出错:%s", e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -109,6 +109,10 @@ public class PlayerInfoDTO {
|
|||||||
return last_use_name;
|
return last_use_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public UUID getUuid() {
|
||||||
|
return uuid;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean setUsingTitle(@Nullable TitleDTO title) {
|
public boolean setUsingTitle(@Nullable TitleDTO title) {
|
||||||
String sql = "";
|
String sql = "";
|
||||||
sql = "UPDATE mplt_player_info SET using_title_id = ? WHERE uuid = ?;";
|
sql = "UPDATE mplt_player_info SET using_title_id = ? WHERE uuid = ?;";
|
||||||
|
Loading…
Reference in New Issue
Block a user