Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

Помогите Выдача предмета

Discussion in 'Разработка плагинов для новичков' started by sasha2003, Feb 18, 2017.

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

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

    Trophy Points:
    76
    Здравствуйте др. форумчане!

    Мне нужно узнать, как Игроку выдать предмет с определённым имненем.
    Готово:


    Code:
    public class Pcagive implements CommandExecutor {
      
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
            if (cmd.getName().equalsIgnoreCase("pcagive")) {
                if (!(sender instanceof Player)) {
                    sender.sendMessage(ChatColor.AQUA + "[PrisonClickAdd] " + ChatColor.RED + "Command only for players.");
                    return false;
                }
                Player p = (Player) sender;
    И ещё один вопрос- как сделать, чтобы вещь выдавалась игроку, которого я укажу в команде.
    Например:
    /pcagive LalKa2281337
    Или:
    /pcagive LolKekCheburek1337
     
  2. Хостинг MineCraft
    <
  3. Blc_Dragon

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

    Trophy Points:
    76
    Имя в Minecraft:
    Blc_Dragon
    Bukkit.getPlayer(args[0]);

    Не забываем проверки на npe
     
  4. Автор темы
    sasha2003

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

    Trophy Points:
    76
    Можно поподробнее
     
  5. Blc_Dragon

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

    Trophy Points:
    76
    Имя в Minecraft:
    Blc_Dragon
    args. это список аргументов. тип данных String[] - массив строк.
    в нем хранится все что введено после команды.

    /command arg0 arg1 arg2
    думаю понятно что тут что.

    соответственно получаем игрока по аргументу.
    если такого игрока нет, то тебе вернется null, работа с нулл отдаст NullPointerException - сокращенно npe.
     
  6. Автор темы
    sasha2003

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

    Trophy Points:
    76
    Дополни мой код, пожалуйста:)
     
  7. Blc_Dragon

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

    Trophy Points:
    76
    Имя в Minecraft:
    Blc_Dragon
    Code:
    boolean key = помощь != сделать за тебя.
    System.out.println(key);
    На выходе true.
     
  8. Автор темы
    sasha2003

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

    Trophy Points:
    76
    Тебе сложно?
     
  9. Blc_Dragon

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

    Trophy Points:
    76
    Имя в Minecraft:
    Blc_Dragon
    нет, при чем тут это.

    я выше все написал.
    я так же дал тебе ВСЮ необходимую информацию.

    Если ты не знаешь жабу, то гугл в помощь.
    Если ты не знаешь ведроапи - гугл в помощь.

    делать за тебя такой простейший код НИКТО не будет
     
  10. EnderBro3D

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

    Trophy Points:
    76
    Имя в Minecraft:
    EnderBro3D
    Code:
       
    public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
            if (cmd.getName().equalsIgnoreCase("pcagive")) {
                if(args.length == 0) {
                    if (!(sender instanceof Player)) {
                        sender.sendMessage(ChatColor.AQUA + "[PrisonClickAdd] " + ChatColor.RED + "Command only for players.");
                        return false;
                    }
                  Player player = (Player) sender;
                  player.getInventory().addItem(new ItemStack(Material.<Material>));
                  return true;
                }
                if(args.length == 1) {
                  if(Bukkit.getPlayer(args[0]) == null) {
                      sender.sendMessage("Игрок не найден");
                      return false;
                  }
                  Player player = Bukkit.getPlayer(args[0]);
                  player.getInventory().addItem(new ItemStack(Material.<Material>));
                  return true;
                }
            }
    }
    
    Как то так. Писал от руки. Надеюсь правильно.
     
  11. Blc_Dragon

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

    Trophy Points:
    76
    Имя в Minecraft:
    Blc_Dragon
    ща бы в 2017 использовать каскад if'ов когда есть switch case

    жду не дождусь когда метод ничего не вернет
     
  12. EnderBro3D

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

    Trophy Points:
    76
    Имя в Minecraft:
    EnderBro3D
    Только что прочитал что нужно выдавать предмет с Именем.
    Code:
    ItemStack item = new ItemStack(Material.<Material>);
    ItemMeta meta = item.getItemMeta();
    meta.setDisplayName("Имя предмета");
    item.setItemMeta(meta);
    
    Опять же писал от руки.
     
  13. Автор темы
    sasha2003

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

    Trophy Points:
    76
    Спасибо, EnderBro3D
     
  14. EnderBro3D

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

    Trophy Points:
    76
    Имя в Minecraft:
    EnderBro3D
    Не за что.
     
  15. TheZefirrkka

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

    Trophy Points:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Всё зависит от ситуации, иногда лучше использовать if else
     
  16. alexandrage

    alexandrage Администратор

    Trophy Points:
    173
    Skype:
    alexandr0116
    +1 По скорости будет одинагого. Все та же лесенка, только в другой обертке.[DOUBLEPOST=1487616006,1487615856][/DOUBLEPOST]С одной лишь разницей switch string с жабы 7 а if с чем угодно от самых древних версий.
     
  17. TheZefirrkka

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

    Trophy Points:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    го
     

Share This Page