- Баллы
- 66
- Имя в Minecraft
- _TheKrealisYT_
Я пишу плагин на проверку игрока на читы. Команда /check.
Мне нужно, чтобы при выходе target банился, а sender'у писало, что игрок забанен, поскольку вышел с сервера. Предлагали уже сделать список с игроками, которые вызываются на проверку и потом через него банить, но мне хочется просто сделать так, чтобы прошло 10 минут и игрок банился автоматически
package ru.main.addon.events;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.metadata.FixedMetadataValue;
import ru.main.addon.Main;
public class Check implements CommandExecutor {
@SuppressWarnings("deprecation")
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if(cmd.getName().equals("check")) {
}
if(!(sender instanceof Player)) {
sender.sendMessage(Main.getInstance().getConfig().getString("check.only_player").replace("&", "§"));
return true;
}
Player p = (Player)sender;
if(!(p.hasPermission("kaddon.check"))) {
sender.sendMessage(Main.getInstance().getConfig().getString("check.noperm").replace("&", "§"));
return true;
}
if(args.length == 0) {
sender.sendMessage(Main.getInstance().getConfig().getString("check.usage_check").replace("&", "§"));
return true;
}
String nick = args[0];
Player target = Bukkit.getPlayer(nick);
if (target == null) {
sender.sendMessage(Main.getInstance().getConfig().getString("check.Player_notfound").replace("&", "§"));
return true;
}
if(args[0].equalsIgnoreCase(p.getName())) {
sender.sendMessage(Main.getInstance().getConfig().getString("check.MySelf_Check").replace("&", "§"));
return true;
}
if(target.hasPermission("kaddon.bypass") || target.isOp()) {
sender.sendMessage(Main.getInstance().getConfig().getString("check.Deny_check").replace("&", "§"));
return true;
}
if(args.length == 1) {
if(target.hasMetadata("check")) {
sender.sendMessage(Main.getInstance().getConfig().getString("check.already_check").replace("&", "§").replace("<player>", target.getName()));
return true;
}
target.setMetadata("check", new FixedMetadataValue(Main.getInstance(), sender));
}
sender.sendMessage(Main.getInstance().getConfig().getString("check.admin_check_message").replace("&", "§").replace("<player>", target.getName()));
target.sendTitle(Main.getInstance().getConfig().getString("check.target_check_title").replace("&", "§").replace("<player>", target.getName()), null);
target.sendMessage(Main.getInstance().getConfig().getString("check.target_check_message").replace("&", "§").replace("<player>", sender.getName()));
return true;
}
}
Мне нужно, чтобы при выходе target банился, а sender'у писало, что игрок забанен, поскольку вышел с сервера. Предлагали уже сделать список с игроками, которые вызываются на проверку и потом через него банить, но мне хочется просто сделать так, чтобы прошло 10 минут и игрок банился автоматически
package ru.main.addon.events;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.metadata.FixedMetadataValue;
import ru.main.addon.Main;
public class Check implements CommandExecutor {
@SuppressWarnings("deprecation")
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if(cmd.getName().equals("check")) {
}
if(!(sender instanceof Player)) {
sender.sendMessage(Main.getInstance().getConfig().getString("check.only_player").replace("&", "§"));
return true;
}
Player p = (Player)sender;
if(!(p.hasPermission("kaddon.check"))) {
sender.sendMessage(Main.getInstance().getConfig().getString("check.noperm").replace("&", "§"));
return true;
}
if(args.length == 0) {
sender.sendMessage(Main.getInstance().getConfig().getString("check.usage_check").replace("&", "§"));
return true;
}
String nick = args[0];
Player target = Bukkit.getPlayer(nick);
if (target == null) {
sender.sendMessage(Main.getInstance().getConfig().getString("check.Player_notfound").replace("&", "§"));
return true;
}
if(args[0].equalsIgnoreCase(p.getName())) {
sender.sendMessage(Main.getInstance().getConfig().getString("check.MySelf_Check").replace("&", "§"));
return true;
}
if(target.hasPermission("kaddon.bypass") || target.isOp()) {
sender.sendMessage(Main.getInstance().getConfig().getString("check.Deny_check").replace("&", "§"));
return true;
}
if(args.length == 1) {
if(target.hasMetadata("check")) {
sender.sendMessage(Main.getInstance().getConfig().getString("check.already_check").replace("&", "§").replace("<player>", target.getName()));
return true;
}
target.setMetadata("check", new FixedMetadataValue(Main.getInstance(), sender));
}
sender.sendMessage(Main.getInstance().getConfig().getString("check.admin_check_message").replace("&", "§").replace("<player>", target.getName()));
target.sendTitle(Main.getInstance().getConfig().getString("check.target_check_title").replace("&", "§").replace("<player>", target.getName()), null);
target.sendMessage(Main.getInstance().getConfig().getString("check.target_check_message").replace("&", "§").replace("<player>", sender.getName()));
return true;
}
}