tpa 部分bug修复及异常输出
This commit is contained in:
parent
9367ff81a3
commit
238650d77c
|
@ -8,7 +8,9 @@ import org.bukkit.command.CommandSender;
|
|||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
@ -24,7 +26,7 @@ public final class Tp extends JavaPlugin implements Listener, CommandExecutor {
|
|||
Logger out=getLogger();
|
||||
HashMap<String,Request> request;
|
||||
FileConfiguration config;
|
||||
|
||||
final long timeDelay=5000;
|
||||
@Override
|
||||
public void onEnable() {
|
||||
// Plugin startup logic
|
||||
|
@ -48,7 +50,7 @@ public final class Tp extends JavaPlugin implements Listener, CommandExecutor {
|
|||
this.saveConfig();
|
||||
}
|
||||
|
||||
Player cmdGetPlayer(Player run,String findName){
|
||||
public static Player cmdGetPlayer(Player run,String findName){
|
||||
Player playerObj=Bukkit.getPlayer(findName);
|
||||
if(playerObj==null){
|
||||
run.sendMessage("§4玩家"+findName+"不存在");
|
||||
|
@ -86,8 +88,8 @@ public final class Tp extends JavaPlugin implements Listener, CommandExecutor {
|
|||
player.sendMessage("§4未找到上一传送点");
|
||||
} else {
|
||||
playInfo.set("back", player.getLocation());
|
||||
player.teleport(pos);
|
||||
saveConfig();
|
||||
player.teleport(pos);
|
||||
player.sendMessage("§2返回上一传送点成功");
|
||||
}
|
||||
break;
|
||||
|
@ -99,13 +101,13 @@ public final class Tp extends JavaPlugin implements Listener, CommandExecutor {
|
|||
if ((playerObj = cmdGetPlayer(player, args[0])) == null) {
|
||||
return false;
|
||||
}
|
||||
if (request.get(player.getName()) == null || (time = Duration.between(LocalDateTime.now(), request.get(player.getName()).dateTime).toMillis()) > 30000) {
|
||||
if (request.get(player.getName()) == null || (time = Duration.between(request.get(player.getName()).dateTime, LocalDateTime.now()).toMillis()) > timeDelay) {
|
||||
request.put(player.getName(), new Request(player.getName(), args[0]));
|
||||
player.sendMessage("§2已发送传送请求");
|
||||
playerObj.sendMessage(player.getName() + "请求传送到你这里");
|
||||
playerObj.sendMessage("输入[/tpaccept 接受]|[/tpdeny 拒绝] 请求");
|
||||
playerObj.sendMessage("输入§l§e[/tpaccept 接受]|[/tpdeny 拒绝] §r请求");
|
||||
} else {
|
||||
player.sendMessage("§e已有传送请求,请等待" + (30000 - time) / 1000 + "秒后再次发送");
|
||||
player.sendMessage("§e已有传送请求,请等待" + (timeDelay - time) / 1000 + "秒后再次发送");
|
||||
}
|
||||
break;
|
||||
case "tpaccept":
|
||||
|
@ -114,15 +116,15 @@ public final class Tp extends JavaPlugin implements Listener, CommandExecutor {
|
|||
return false;
|
||||
}
|
||||
if (request.get(playerObj.getName()) != null) {
|
||||
time = Duration.between(LocalDateTime.now(), request.get(playerObj.getName()).dateTime).toMillis();
|
||||
if (time > 30000) {
|
||||
time = Duration.between(request.get(playerObj.getName()).dateTime,LocalDateTime.now()).toMillis();
|
||||
if (time > timeDelay) {
|
||||
player.sendMessage("§e请求超时");
|
||||
} else {
|
||||
player.sendMessage("§2已接受" + playerObj.getName() + "传送");
|
||||
playerObj.sendMessage("§2传送已被接受");
|
||||
config.set(playerObj.getUniqueId() + ".back", playerObj.getLocation());
|
||||
playerObj.teleport(player);
|
||||
saveConfig();
|
||||
playerObj.teleport(player);
|
||||
}
|
||||
} else {
|
||||
player.sendMessage("§4未发现传送请求");
|
||||
|
@ -131,16 +133,16 @@ public final class Tp extends JavaPlugin implements Listener, CommandExecutor {
|
|||
}
|
||||
for (Request i : request.values()) {
|
||||
if (i == null) continue;
|
||||
time = Duration.between(LocalDateTime.now(), i.dateTime).toMillis();
|
||||
time = Duration.between( i.dateTime,LocalDateTime.now()).toMillis();
|
||||
if (Objects.equals(i.toPlayer, player.getName()) && time < 30000) {
|
||||
if ((playerObj = cmdGetPlayer(player, i.rawPlayer)) == null) {
|
||||
continue;
|
||||
}
|
||||
player.sendMessage("§2已接受传送");
|
||||
player.sendMessage("§2已接受"+playerObj.getName()+"传送");
|
||||
playerObj.sendMessage("§2传送已被接受");
|
||||
config.set(playerObj.getUniqueId() + ".back", playerObj.getLocation());
|
||||
playerObj.teleport(player);
|
||||
saveConfig();
|
||||
playerObj.teleport(player);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -160,25 +162,58 @@ public final class Tp extends JavaPlugin implements Listener, CommandExecutor {
|
|||
}
|
||||
for (Request i : request.values()) {
|
||||
if (i == null) continue;
|
||||
time = Duration.between(LocalDateTime.now(), i.dateTime).toMillis();
|
||||
if (Objects.equals(i.toPlayer, player.getName()) && time < 30000) {
|
||||
time = Duration.between(i.dateTime,LocalDateTime.now()).toMillis();
|
||||
if (Objects.equals(i.toPlayer, player.getName()) && time < timeDelay) {
|
||||
if ((playerObj = cmdGetPlayer(player, i.rawPlayer)) == null) {
|
||||
continue;
|
||||
}
|
||||
request.remove(i.rawPlayer);
|
||||
player.sendMessage("§e已拒绝传送");
|
||||
playerObj.sendMessage("§2传送已被拒绝");
|
||||
playerObj.sendMessage("§4传送已被拒绝");
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "home":
|
||||
if (args != null && args.length>0 && args[0] != null) {
|
||||
ConfigurationSection homeList;
|
||||
if(playInfo==null|| (homeList=playInfo.getConfigurationSection("homes"))==null){
|
||||
player.sendMessage("§4未找到"+args[0]+"传送点");
|
||||
return false;
|
||||
}
|
||||
for(String i :homeList.getKeys(false)){
|
||||
if(args[0].equals(i)&&(pos=homeList.getLocation(i))!=null){
|
||||
playInfo.set("back",player.getLocation());
|
||||
saveConfig();
|
||||
player.teleport(pos);
|
||||
player.sendMessage("已传送至"+i);
|
||||
}
|
||||
}
|
||||
|
||||
}else return false;
|
||||
break;
|
||||
case "sethome":
|
||||
|
||||
if (args != null && args.length>0 && args[0] != null && playInfo!=null) {
|
||||
playInfo.set("homes."+args[0],player.getLocation());
|
||||
saveConfig();
|
||||
player.sendMessage("已设置传送点"+args[0]);
|
||||
}else return false;
|
||||
break;
|
||||
case "homes":
|
||||
|
||||
ConfigurationSection homeList;
|
||||
if(playInfo==null|| (homeList=playInfo.getConfigurationSection("homes"))==null){
|
||||
player.sendMessage("§4未找到传送点");
|
||||
return false;
|
||||
}
|
||||
player.sendMessage("存在路径点:");
|
||||
if (args != null && args.length>0 && args[0] != null) {
|
||||
for(String i :homeList.getKeys(false)){
|
||||
if(i.contains(args[0]))player.sendMessage(i);
|
||||
}
|
||||
}else {
|
||||
for(String i :homeList.getKeys(false)){
|
||||
player.sendMessage(i);
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
player.sendMessage("未找到" + label + "命令");
|
||||
|
@ -189,4 +224,9 @@ public final class Tp extends JavaPlugin implements Listener, CommandExecutor {
|
|||
}
|
||||
return true;
|
||||
}
|
||||
@EventHandler
|
||||
public void onPlayerDeathEvent(PlayerDeathEvent event){
|
||||
config.set(event.getPlayer().getUniqueId() + ".back", event.getPlayer().getLocation());
|
||||
saveConfig();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue