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

Помогите Как сделать команду /ban и /unban в плагине?

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

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

    Optifyne Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Optifyne
    Здрасте, прошу прощения, что открываю тему по такому пустяку, но лично я облазил много чего и, как новичок в плагинах, не нашел инфы про бан. Самому тоже не получилось:( Прошу помощи, как сделать команду /ban и /unban!
    Код вот (сам бан должен быть внизу, на месте комментария):

    package DefaultTp.main;

    import org.bukkit.BanList;
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;

    public class ban implements CommandExecutor{

    private DefaultTp plugin;
    public ban(DefaultTp plugin) {
    this.plugin = plugin;
    }
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
    if(!sender.hasPermission("DefaultTp.ban")) {
    sender.sendMessage(ChatColor.RED + "Недостаточно прав!");
    return true;
    }
    if(args.length == 0) {
    sender.sendMessage(ChatColor.RED + "Пожалуйста, используйте: " + ChatColor.BOLD + "/ban [Игрок]");
    return true;
    }
    String name = args[0];
    Player p = Bukkit.getPlayer(name);
    if(p == null) {
    sender.sendMessage(ChatColor.RED + "Игрок" + ChatColor.YELLOW + " " + name + " " + ChatColor.RED + "не в сети!");
    return true;
    }
    p.kickPlayer(ChatColor.RED + "Вы были забанены!");
    //
    sender.sendMessage(ChatColor.YELLOW + "Игрок" + ChatColor.BOLD + name + ChatColor.YELLOW + "успешно забанен!");
    return true;
    }
    }
     
  2. MurlikMurlik

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

    Баллы:
    96
    Создай HashMap и кидай в него ключ - игрок, а значение какой нибудь объект бана в котором вся информация об бане этого игрока.
    Зарегистрируй слушатель и при входе игрока не давай ему зайти если он оказался в бане.
     
  3. Автор темы
    Optifyne

    Optifyne Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Optifyne
    Спасибо за ответ, но если честно не сильно понял:( Если не сложно, можете примерно код скинуть, как это должно выглядеть:)
     
  4. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Просто кикаешь при коменде, если игрок онлайн. Ну и дисалов, если в бане игрок, на логин ивенте или прелогине.
     
  5. Автор темы
    Optifyne

    Optifyne Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Optifyne
    При команде и так кикает. Но я не пойму, что такое дисалов, логин и прелогин ивент? Можете код скинуть, или для новичка объяснить, пожалуйста:)
     
  6. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
  7. Georgy_Cherkasov

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

    Баллы:
    61
    Bukkit.getBanList(Type.NAME).add(/*здесь с аргументами думаю разберёшься, если нет, то скажи*/);
     
  8. Автор темы
    Optifyne

    Optifyne Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Optifyne
  9. Автор темы
    Optifyne

    Optifyne Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Optifyne
    Большое спасибо, наконецто понял хотябы суть. Но аргументы не знаю, помогите и тут пж)
     
  10. Автор темы
    Optifyne

    Optifyne Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Optifyne
    Хотя вроде бы все. Загуглил на тему именно банлиста - нашел! Всем большое спасибо!
     
  11. Georgy_Cherkasov

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

    Баллы:
    61

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