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

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

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

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

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

    Баллы:
    76
    Здравствуйте др. форумчане!

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


    Код:
    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 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    Bukkit.getPlayer(args[0]);

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

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

    Баллы:
    76
    Можно поподробнее
     
  5. Blc_Dragon

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

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

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

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

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

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

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

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

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

    Баллы:
    76
    Тебе сложно?
     
  9. Blc_Dragon

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    нет, при чем тут это.

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

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

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

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

    Баллы:
    76
    Имя в Minecraft:
    EnderBro3D
    Код:
       
    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 Активный участник Пользователь

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

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

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

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

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

    Баллы:
    76
    Спасибо, EnderBro3D
     
  14. EnderBro3D

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

    Баллы:
    76
    Имя в Minecraft:
    EnderBro3D
    Не за что.
     
  15. TheZefirrkka

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

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

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

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

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    го
     

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