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

как сделать чтобы при написании команды 1-ый раз, 2-ой раз она не выполнялась!?

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

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

    sleinexxx Ньюби

    Баллы:
    1
    хочу написсать плагин как на вайме, ан секретную комманду vime.
    Как сделать что бы при написании команды vime 1-ый раз она выполнялась, а 2-ой раз нет?(желательно кодом)
    вот код:
    private Main plugin;

    public vimecommand (Main plugin) {
    this.plugin = plugin;
    plugin.getCommand("Vime").setExecutor(this);
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    if(!(sender instanceof Player)) {
    sender.sendMessage("This command only player!");
    return true;
    }

    Player p = (Player) sender;
    if(p.hasPermission("vime.use")) {
    p.sendMessage(ChatColor.RED + " ADMIN ");
    p.sendMessage("");
    p.sendMessage(ChatColor.GRAY + "Ты нашел секретную комманду!");
    p.sendMessage(ChatColor.GRAY + "Тебе было начислено: " + ChatColor.GREEN + "50exp");
    p.giveExp(50);
    return true;
    } else {
    p.sendMessage(ChatColor.RED + "Ты не имеешь прав на использование этой комманды!");
    }
    return false;
    }

    }
     
  2. Хостинг MineCraft
    <
  3. BrokenFG

    BrokenFG Участник

    Баллы:
    31
    Имя в Minecraft:
    BrokenFG
    1) Хранить в локальном листе ники игроков, которые ввели эту команду. И перед выполнением команды проверять на наличие никнейма игрока в этом листе. Минусы: при перезапуске сервера лист аннулируется
    2) Хранить никнеймы в локальной базе данных
     
  4. qbert

    qbert Новичок Пользователь

    Баллы:
    23
    HashMap
    mySQL
    SQLite
    config
    Выбирай
     
  5. Goldfinch

    Goldfinch Новичок

    Баллы:
    6
    Имя в Minecraft:
    Goldfinchx
    Тебе нужно добавить запись и проверку наличия этой записи в свой код.
    Я бы посоветовал делать это через config.yml, который не будет очищать записи после перезагрузки сервера.

    Вот код, тут все достаточно просто:

    Код:
    @Override
        public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
            Player player = (Player) sender;
         
            // проверка, писал ли игрок эту команду хотя бы раз
            if (!main.getConfig().contains("players." + player.getUniqueId().toString() + ".secretMessage")) {
             
    
                // если не писал, то мы добавляем запись о том, что он её писал и посылаем ему сообщение
                player.sendMessage(ChatColor.GREEN + "Поздравляю! Ты нашел секретную команду!");
                main.getConfig().set("players." + player.getUniqueId().toString() + ".secretMessage", "yes");
                main.saveConfig();
    
             
                // если же писал, то выводим в чат это сообщение
            } else {
                player.sendMessage(ChatColor.RED + "Ты уже вводил секретную команду!");
            }
         
         
            return false;
        }
     

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