timeout kick
This commit is contained in:
@ -1,5 +1,6 @@
|
|||||||
package expvintl.tools;
|
package expvintl.tools;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
@ -7,13 +8,18 @@ import org.bukkit.event.block.BlockBreakEvent;
|
|||||||
import org.bukkit.event.block.BlockPlaceEvent;
|
import org.bukkit.event.block.BlockPlaceEvent;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
import org.bukkit.event.player.*;
|
import org.bukkit.event.player.*;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class LoginHandler implements Listener {
|
public class LoginHandler implements Listener {
|
||||||
private List<String> loggedPlayer=new ArrayList<>();
|
private final List<String> loggedPlayer=new ArrayList<>();
|
||||||
private YamlConfiguration cfg=Tools.loginConfig;
|
private final YamlConfiguration cfg=Tools.loginConfig;
|
||||||
|
private Plugin plugin;
|
||||||
|
public LoginHandler(Plugin plugin){
|
||||||
|
this.plugin=plugin;
|
||||||
|
}
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onBlockBreak(BlockBreakEvent event){
|
public void onBlockBreak(BlockBreakEvent event){
|
||||||
if(!isLogged(event.getPlayer().getName())) event.setCancelled(true);
|
if(!isLogged(event.getPlayer().getName())) event.setCancelled(true);
|
||||||
@ -67,6 +73,9 @@ public class LoginHandler implements Listener {
|
|||||||
}else{
|
}else{
|
||||||
event.getPlayer().sendMessage("您似乎没有注册,请使用 \"/reg 密码 确认密码\" 来注册!");
|
event.getPlayer().sendMessage("您似乎没有注册,请使用 \"/reg 密码 确认密码\" 来注册!");
|
||||||
}
|
}
|
||||||
|
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin,()->{
|
||||||
|
event.getPlayer().kickPlayer("登录验证超时!");
|
||||||
|
},1200L);
|
||||||
}
|
}
|
||||||
public List<String> getLoggedPlayer(){
|
public List<String> getLoggedPlayer(){
|
||||||
return loggedPlayer;
|
return loggedPlayer;
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package expvintl.tools;
|
package expvintl.tools;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@ -10,7 +11,6 @@ import org.bukkit.plugin.java.JavaPlugin;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Random;
|
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
@ -23,7 +23,7 @@ public final class Tools extends JavaPlugin {
|
|||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
// Plugin startup logic
|
// Plugin startup logic
|
||||||
logger.info("Plugin Enabled!");
|
logger.info("Plugin Enabled!");
|
||||||
loginHandler=new LoginHandler();
|
loginHandler=new LoginHandler(this);
|
||||||
getServer().getPluginManager().registerEvents(loginHandler,this);
|
getServer().getPluginManager().registerEvents(loginHandler,this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,6 +83,7 @@ public final class Tools extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
loginHandler.getLoggedPlayer().add(sender.getName());
|
loginHandler.getLoggedPlayer().add(sender.getName());
|
||||||
sender.sendMessage("登录成功!");
|
sender.sendMessage("登录成功!");
|
||||||
|
Bukkit.getScheduler().cancelTasks(this);
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
sender.sendMessage("缺少参数!");
|
sender.sendMessage("缺少参数!");
|
||||||
@ -105,11 +106,40 @@ public final class Tools extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
loginHandler.getLoggedPlayer().add(sender.getName());
|
loginHandler.getLoggedPlayer().add(sender.getName());
|
||||||
sender.sendMessage("登录成功!");
|
sender.sendMessage("登录成功!");
|
||||||
|
Bukkit.getScheduler().cancelTasks(this);
|
||||||
return true;
|
return true;
|
||||||
}else {
|
}else {
|
||||||
sender.sendMessage("参数错误!");
|
sender.sendMessage("参数错误!");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
case "cp":
|
||||||
|
if(args.length==1){
|
||||||
|
if(loginHandler.isRegistered(sender.getName())&&loginHandler.isLogged(sender.getName())){
|
||||||
|
if (args[0].length() < 6 || args[0].length() > 16) {
|
||||||
|
sender.sendMessage("密码不能少于6位或大于16位!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if(!Pattern.matches("[A-Za-z0-9.-_]+",args[0])){
|
||||||
|
sender.sendMessage("密码包含非法字符!\n请使用 大小写字母数字.-_等字符");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
loginConfig.set(sender.getName(),args[0]);
|
||||||
|
try {
|
||||||
|
loginConfig.save(cfgPath);
|
||||||
|
} catch (IOException e) {
|
||||||
|
logger.warning(e.getMessage());
|
||||||
|
sender.sendMessage("密码保存失败!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
sender.sendMessage("密码修改成功!");
|
||||||
|
}else{
|
||||||
|
sender.sendMessage("您未注册或登录,无权修改密码!");
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}else{
|
||||||
|
sender.sendMessage("缺少参数!");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
case "kill":
|
case "kill":
|
||||||
if(args.length>0){
|
if(args.length>0){
|
||||||
sender.sendMessage(args[0]+" 死了");
|
sender.sendMessage(args[0]+" 死了");
|
||||||
|
@ -12,8 +12,11 @@ commands:
|
|||||||
description: "传送到某个位置"
|
description: "传送到某个位置"
|
||||||
usage: "用法: /tp <玩家名> <x> <y> <z>"
|
usage: "用法: /tp <玩家名> <x> <y> <z>"
|
||||||
reg:
|
reg:
|
||||||
description: "注册用户名"
|
description: "注册用户"
|
||||||
usage: "用法: /reg 密码 确认密码"
|
usage: "用法: /reg 密码 确认密码"
|
||||||
l:
|
l:
|
||||||
description: "登录账户"
|
description: "登录账户"
|
||||||
usage: "用法: /l 密码"
|
usage: "用法: /l 密码"
|
||||||
|
cp:
|
||||||
|
description: "修改用户密码"
|
||||||
|
usage: "用法: /cp 新密码"
|
||||||
|
Reference in New Issue
Block a user