tpa 部分bug修复及异常输出

This commit is contained in:
oiQwQio 2024-03-02 07:42:48 +08:00
parent ef95751183
commit 9367ff81a3
2 changed files with 121 additions and 100 deletions

View File

@ -12,6 +12,8 @@ import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.NotNull;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.time.Duration;
import java.time.LocalDateTime;
import java.util.HashMap;
@ -27,9 +29,18 @@ public final class Tp extends JavaPlugin implements Listener, CommandExecutor {
public void onEnable() {
// Plugin startup logic
out.info("插件 tpa 启动成功");
if (!getDataFolder().exists()){
out.info("Creating "+ getDataFolder() +" main directory ");
getDataFolder().mkdir();
}
saveDefaultConfig();
config=getConfig();
request=new HashMap<>();
getServer().getPluginManager().registerEvents(this, this);
this.saveDefaultConfig();
config=this.getConfig();
Objects.requireNonNull(getCommand("tpa")).setExecutor(this);
Objects.requireNonNull(getCommand("tpaccept")).setExecutor(this);
Objects.requireNonNull(getCommand("tpdeny")).setExecutor(this);
Objects.requireNonNull(getCommand("back")).setExecutor(this);
}
@Override
public void onDisable() {
@ -50,8 +61,16 @@ public final class Tp extends JavaPlugin implements Listener, CommandExecutor {
return playerObj;
}
public static String getStackTrace(Throwable throwable){
StringWriter sw = new StringWriter();
try (PrintWriter pw = new PrintWriter(sw)) {
throwable.printStackTrace(pw);
return sw.toString();
}
}
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @NotNull String label, String[] args){
try {
if (!(sender instanceof Player)) {
out.warning("此命令是玩家命令");
return false;
@ -73,15 +92,14 @@ public final class Tp extends JavaPlugin implements Listener, CommandExecutor {
}
break;
case "tpa":
if(args==null||args[0]==null){
if (args == null || args.length<1 || args[0] == null) {
player.sendMessage("§4参数不正确,请输入 /tpa <玩家名>");
return false;
}
if ((playerObj = cmdGetPlayer(player, args[0])) == null) {
return false;
}
time=Duration.between(LocalDateTime.now(),request.get(player.getName()).dateTime).toMillis();
if(request.get(player.getName())==null|| time>30000){
if (request.get(player.getName()) == null || (time = Duration.between(LocalDateTime.now(), request.get(player.getName()).dateTime).toMillis()) > 30000) {
request.put(player.getName(), new Request(player.getName(), args[0]));
player.sendMessage("§2已发送传送请求");
playerObj.sendMessage(player.getName() + "请求传送到你这里");
@ -91,7 +109,7 @@ public final class Tp extends JavaPlugin implements Listener, CommandExecutor {
}
break;
case "tpaccept":
if(args!=null&&args[0]!=null){
if (args != null && args.length>0 && args[0] != null) {
if ((playerObj = cmdGetPlayer(player, args[0])) == null) {
return false;
}
@ -127,7 +145,7 @@ public final class Tp extends JavaPlugin implements Listener, CommandExecutor {
}
break;
case "tpdeny":
if(args!=null&&args[0]!=null){
if (args != null && args.length>0 && args[0] != null) {
if ((playerObj = cmdGetPlayer(player, args[0])) == null) {
return false;
}
@ -166,6 +184,9 @@ public final class Tp extends JavaPlugin implements Listener, CommandExecutor {
player.sendMessage("未找到" + label + "命令");
return false;
}
}catch (Exception e){
out.warning(getStackTrace(e));
}
return true;
}
}

View File