1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Как сделать так, чтобы игрок(target) при выходе с сервера банился?

Тема в разделе "Разработка плагинов для новичков", создана пользователем TheKrealisYT, 16 окт 2020.

  1. Автор темы
    TheKrealisYT

    TheKrealisYT Активный участник Пользователь

    Баллы:
    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;
    }
    }
     
  2. LOVEC3327

    LOVEC3327 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    Если я тебя правильно понял, то вот
    PHP:
                String playerName args[0];
                
    Date banTime = new Date(System.currentTimeMillis() - 1000L 60L 60L 24L); //24 hours (1000L - 1 second)
                
    Bukkit.getScheduler().runTaskLater(Main.getInstance(), () -> Bukkit.getBanList(BanList.Type.NAME).addBan(playerName"Sample reason"banTimep.getName()), 20L 600L); //20L - 1 second
    Если нужно банить навсегда - указываешь new Date(0)
    Ну и после добавления в список забаненых - просто кикаешь его с нужной тебе причиной, если он находится на сервере
    https://hub.spigotmc.org/javadocs/spigot/org/bukkit/BanList.html#addBan
     

Поделиться этой страницей