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

Помогите Как получить ник игрока в шедуляре

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

  1. Slavkaa

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

    Баллы:
    76
    Имя в Minecraft:
    Slavok2001
    хе-хе, ну это смотря какое количество.
     
  2. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    даже за миллион послал бы на три буквы
     
  3. TheZefirrkka

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

    Баллы:
    76
    Ага... ну не ври.
     
  4. TheZefirrkka

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

    Баллы:
    76
    Ты бы и за 10к помог ему с радостью.
     
  5. Slavkaa

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

    Баллы:
    76
    Имя в Minecraft:
    Slavok2001
    я бы и за 1к помог бы
     
  6. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    хотя, все же да, за десять
     
  7. Gerka

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

    Баллы:
    61
    Skype:
    geracraft.1234567
    Имя в Minecraft:
    GerkaGrove
    Это должно сработать
    Код:
    Player player= e.getPlayer();
    MainClass.plugin.getServer().getScheduler().scheduleSyncDelayedTask(MainClass.plugin, new Runnable()
    {
      public void run()
      {
        player.sendMessage("Проверка");
      }
    }, 100);
    
     
  8. Slavkaa

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

    Баллы:
    76
    Имя в Minecraft:
    Slavok2001
    Зря ты это написал. Щас будет вопрос: "Куда это вставлять?!", "Ты че самый умный?", "Фу, говнокод, дайте другой вариант"
     
  9. BlazeMC

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

    Баллы:
    76
    Здравствуйте,как получить именно игрока,а не самого себя?Нужно чтобы ставить определённому игроку префикс.
     
  10. Gerka

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

    Баллы:
    61
    Skype:
    geracraft.1234567
    Имя в Minecraft:
    GerkaGrove
    Ты не в той теме дружок X)

    Bukkit.getPlayer("PlayerName");
    Где PlayerName - ник игрока

    Если игрок не в сети - функция вернёт null. Т.е этой же функцией можно проверить есть ли игрок в сети.

    Player player = Bukkit.getPlayer("VasyaPupkin");
    if (player != null)
    {
    // Делаешь префикс игроку player
    }
    else
    {
    // Игрок не в сети
    }
     
  11. BlazeMC

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

    Баллы:
    76
    мне нужно не одному игроку менять,а указав в /prefix set MisterBukkit Тролль,/prefix set Katerina Катенька
     
  12. Gerka

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

    Баллы:
    61
    Skype:
    geracraft.1234567
    Имя в Minecraft:
    GerkaGrove
    Я весь код за тебя делать не буду, найди как делать команды сам.
    Тебе может помочь это видео:
    youtu.be/pUgshz35En0
     
  13. BlazeMC

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

    Баллы:
    76
    PHP:
    package me.blazefoxpro.module.modules;

    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 me.blazefoxpro.main.Core;
    import me.blazefoxpro.module.Module;

    public class 
    PAdm extends Module implements CommandExecutor {
        
        @
    Override
        
    public boolean onCommand(CommandSender senderCommand cmdString lblString[] args) {
            if(!(
    sender instanceof Player)) {
                
    sender.sendMessage("Only player usage!");
                return 
    true;
            }
            final 
    String p1 args[0].toLowerCase();
            if(
    args.length == 0) {
                if(!
    sender.hasPermission("prefix.admin")) {
                    
    sender.sendMessage("§a§l[§e§lPrefix§a§l] > У вас недостаточно прав!");
                    return 
    true;
                }
                
    sender.sendMessage("");
                
    sender.sendMessage("§a§l--------------------[§e§lPrefix§a§l]--------------------");
                
    sender.sendMessage("§e§l/padm set §a§l[§e§lИгрок§a§l] [§e§lПрефикс§a§l] - Установить префикс игроку.");
                
    sender.sendMessage("§e§l/padm clear §a§l[§e§lИгрок§a§l] - Сбросить префикс игроку.");
                
    sender.sendMessage("§a§l--------------------[§e§lPrefix§a§l]--------------------");
                return 
    false;
            }
            switch (
    args[0].toLowerCase()) {
            case 
    "set":
                if(
    args.length != 2) {
                    
    sender.sendMessage("");
                    
    sender.sendMessage("§a§l--------------------[§e§lPrefix§a§l]--------------------");
                    
    sender.sendMessage("§a§lИспользование: §e§l/padm set §a§l[§e§lИгрок§a§l] [§e§lПрефикс§a§l]");
                    
    sender.sendMessage("§a§l--------------------[§e§lPrefix§a§l]--------------------");
                    
    sender.sendMessage("");
                    return 
    false;
                }
                else if(!
    sender.hasPermission("prefix.admin")) {
                    
    sender.sendMessage("§a§l[§e§lPrefix§a§l] > У вас недостаточно прав!");
                    return 
    true;
                }
                
    sender.sendMessage("§a§l[§e§lPrefix§a§l] > Вы успешно сменили префикс игроку §e§l" p1);
                
    Core.getChat().setPlayerPrefix(nullBukkit.getPlayer(p1), args[1]+" ");
                break;
            }
            return 
    false;
        }
    }
    Команда то есть....
     
  14. Gerka

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

    Баллы:
    61
    Skype:
    geracraft.1234567
    Имя в Minecraft:
    GerkaGrove
    Исправил то что ты просил и ещё пару моментов
    Код:
    public boolean onCommand(CommandSender sender, Command cmd, String lbl, String[] args) {
        if(!(sender instanceof Player)) {
                sender.sendMessage("Only player usage!");
            return true;
        }
       
        // Сразу проверяем админ ли игрок и больше не паримся
        if(!sender.hasPermission("prefix.admin")) {
            sender.sendMessage("§a§l[§e§lPrefix§a§l] > У вас недостаточно прав!");
            return true;
        }
       
       
        if(args.length == 0) {
            sender.sendMessage("");
            sender.sendMessage("§a§l--------------------[§e§lPrefix§a§l]--------------------");
            sender.sendMessage("§e§l/padm set §a§l[§e§lИгрок§a§l] [§e§lПрефикс§a§l] - Установить префикс игроку.");
            sender.sendMessage("§e§l/padm clear §a§l[§e§lИгрок§a§l] - Сбросить префикс игроку.");
            sender.sendMessage("§a§l--------------------[§e§lPrefix§a§l]--------------------");
            return true;
        }
       
        // Не сравнивай строки с помощью ==
        // String - не примитивный тип и == может не сработать при некоторых обстоятельствах
        // Вместо этого используй .equals("") или .equalsIgnoreCase("")
        // .equalsIgnoreCase("") не смотрит на регистр
        if (args[0].equalsIgnoreCase("set")) {
            if (args.length > 2) {
                // Получаем игрока
                Player targetPlayer = Bukkit.getPlayer(args[1]);
               
                if (targetPlayer != null) {
                    if (args.length > 3) {
                        //Core.getChat().setPlayerPrefix(null, targetPlayer, args[2]); // А тут была стилистическая ошибка
                        // Я убрал + " " так как это длжно быть в функции setPlayerPrefix, перенеси туда
                       
                        sender.sendMessage("§a§l[§e§lPrefix§a§l] > Вы успешно сменили префикс игроку §e§l" + targetPlayer.getName());
                        // sender.sendMessage("§a§l[§e§lPrefix§a§l] > Вы успешно сменили префикс игроку §e§l" + args[1]); - плохая идея
                        // Т.к если в сети есть игрок JohnDoe и вызвать Bukkit.getPlayer("John") - он вернёт игрока JohnDoe
                        // По этому лучше брать ник из объекта игрока
                       
                        return true;
                    }
                    else {
                        // Не введён префикс
                        return true;
                    }
                }
                else {
                    // Игрока нет в сети
                    return true;
                }
            }
            else {
                // Не введён ник игрока
                return true;
            }
        }
        else if (args[0].equalsIgnoreCase("other string")) {
            return true;
        }
       
        // Я перенёс это суда чтобы оно выводилось в всегда когда что-то пошло не так
        sender.sendMessage("");
        sender.sendMessage("§a§l--------------------[§e§lPrefix§a§l]--------------------");
        sender.sendMessage("§a§lИспользование: §e§l/padm set §a§l[§e§lИгрок§a§l] [§e§lПрефикс§a§l]");
        sender.sendMessage("§a§l--------------------[§e§lPrefix§a§l]--------------------");
        sender.sendMessage("");
        return true;
        // И не возврощай false если сам говоришь игроку что он сделал не так
        // при возврате false JavaPlugin отправит игроку дефолтный текст ошибки
    }
    А, и не используй этот ужас §e, вместо этого есть ChatColor.RED, BLUE, итд.
     
  15. xDark

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

    Баллы:
    96
    сам ты ужас, нафиг это юзать?
     
  16. BlazeMC

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

    Баллы:
    76
    Ввожу /padm set Ник Префикс,мне пишет что нужно ввести ник,ввожу /padm set BlazeFoxPro Prefix пишет про префикс,и при /padm set BlazeFoxPro Prefix Prefix ничего не меняется.
     
  17. Gerka

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

    Баллы:
    61
    Skype:
    geracraft.1234567
    Имя в Minecraft:
    GerkaGrove
    Я немного накасячил с проверкой, там не > а >= должно быть. По этому команда тупила с параметрами, а почему ничего не происходит ты сам понять должен был, я случайно лишнюю строчку закоментировал, как раз ту, где ставится префикс.
    Вот исправленная версия:
    Код:
    public boolean onCommand(CommandSender sender, Command cmd, String lbl, String[] args) {
        if(!(sender instanceof Player)) {
                sender.sendMessage("Only player usage!");
            return true;
        }
      
        // Сразу проверяем админ ли игрок и больше не паримся
        if(!sender.hasPermission("prefix.admin")) {
            sender.sendMessage("§a§l[§e§lPrefix§a§l] > У вас недостаточно прав!");
            return true;
        }
      
      
        if(args.length == 0) {
            sender.sendMessage("");
            sender.sendMessage("§a§l--------------------[§e§lPrefix§a§l]--------------------");
            sender.sendMessage("§e§l/padm set §a§l[§e§lИгрок§a§l] [§e§lПрефикс§a§l] - Установить префикс игроку.");
            sender.sendMessage("§e§l/padm clear §a§l[§e§lИгрок§a§l] - Сбросить префикс игроку.");
            sender.sendMessage("§a§l--------------------[§e§lPrefix§a§l]--------------------");
            return true;
        }
      
        // Не сравнивай строки с помощью ==
        // String - не примитивный тип и == может не сработать при некоторых обстоятельствах
        // Вместо этого используй .equals("") или .equalsIgnoreCase("")
        // .equalsIgnoreCase("") не смотрит на регистр
        if (args[0].equalsIgnoreCase("set")) {
            if (args.length >= 2) {
                // Получаем игрока
                Player targetPlayer = Bukkit.getPlayer(args[1]);
              
                if (targetPlayer != null) {
                    if (args.length >= 3) {
                        Core.getChat().setPlayerPrefix(null, targetPlayer, args[2]); // А тут была стилистическая ошибка
                        // Я убрал + " " так как это длжно быть в функции setPlayerPrefix, перенеси туда
                      
                        sender.sendMessage("§a§l[§e§lPrefix§a§l] > Вы успешно сменили префикс игроку §e§l" + targetPlayer.getName());
                        // sender.sendMessage("§a§l[§e§lPrefix§a§l] > Вы успешно сменили префикс игроку §e§l" + args[1]); - плохая идея
                        // Т.к если в сети есть игрок JohnDoe и вызвать Bukkit.getPlayer("John") - он вернёт игрока JohnDoe
                        // По этому лучше брать ник из объекта игрока
                      
                        return true;
                    }
                    else {
                        // Не введён префикс
                        return true;
                    }
                }
                else {
                    // Игрока нет в сети
                    return true;
                }
            }
            else {
                // Не введён ник игрока
                return true;
            }
        }
        else if (args[0].equalsIgnoreCase("other string")) {
            return true;
        }
        
      
        // Я перенёс это суда чтобы оно выводилось в всегда когда что-то пошло не так
        sender.sendMessage("");
        sender.sendMessage("§a§l--------------------[§e§lPrefix§a§l]--------------------");
        sender.sendMessage("§a§lИспользование: §e§l/padm set §a§l[§e§lИгрок§a§l] [§e§lПрефикс§a§l]");
        sender.sendMessage("§a§l--------------------[§e§lPrefix§a§l]--------------------");
        sender.sendMessage("");
        return true;
        // И не возврощай false если сам говоришь игроку что он сделал не так
        // при возврате false JavaPlugin отправит игроку дефолтный текст ошибки
    }
     
  18. SaMEC

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

    Баллы:
    173
    Skype:
    support.meedway
    Имя в Minecraft:
    Nick
    А где ТС хочу еще поржать над ним!
     
  19. Energy warrior

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

    Баллы:
    76
    Я всё понял он капец какой тупой.
     

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