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

команда на получение предмета

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

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

    ftaner1 Активный участник

    Баллы:
    63
    можете подсказать скрипт, при котором при определенной команде будет выдаваться нужная вещь?
    так же чтобы был пермишен, который отвечал за эту команду
     
  2. Хостинг MineCraft
    <
  3. ShieldComa

    ShieldComa Ньюби Пользователь

    Баллы:
    1
    Имя в Minecraft:
    ShieldComa
  4. Nippels

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

    Баллы:
    21
    Имя в Minecraft:
    Nippels
    Подробный туториал.

    1. В главном классе в onEnable впиши это: getCommand("give").setExecutor(new admin(this));
    give (любая команда, может быть заменена на свою)
    admin(название класса, в котором будет выполняться команда)

    2. В plugin.yml должно быть так:
    [​IMG]

    3. В главном классе "getCommand("give").setExecutor(new admin(this));" должно быть выделено красным, наведи на "admin(this)" и добавь класс, как исполнитель команд. Сохрани новый класс (admin) и перейди в главный(в моем случае main), если сного подчеркнуто красным наведи и добавь конструктор.

    4. В admin замени "public boolean onCommand" на следующий код:
    Код:
    @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
     
            Player p = (Player) sender;
            if(!(sender.hasPermission("plugin.give.item"))){p.sendMessage("§c§lУ вас нет доступа!"); return true;}
            if(args.length != 1){return true;}
    
            String str=args[0];
            int id=Integer.parseInt(str);
            p.getInventory().addItem(new ItemStack(id,64));
            p.sendMessage("§aВы получили:§6 "+id+" §ax64");
    
    }
            
    5. Запускай, тести. Правда я не знаю, что будет если ввести id, которого нет в майне :Х, скорее всего выдаст ошибку или вообще крашнит все к чертям, короче это пример выполнения обычной команды, подстрой под себя и все :Х

    6. Полный код:

    Код:
    public class admin implements CommandExecutor {
        public admin(main main) {
            // TODO Auto-generated constructor stub
        }
    
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
       
            Player p = (Player) sender;
            if(!(sender.hasPermission("asdasd.*"))){p.sendMessage(ChatColor.RED+"У вас нет доступа!"); return true;}
       
            if(args.length != 1){return true;}
       
            String str=args[0];
            int id=Integer.parseInt(str);
            p.getInventory().addItem(new ItemStack(id,64));
            p.sendMessage("§aВы получили:§6 "+id+" §ax64");
    
           return true;
    }
    P.S. Может не работать =/
     
    Последнее редактирование: 1 июл 2017
  5. ShieldComa

    ShieldComa Ньюби Пользователь

    Баллы:
    1
    Имя в Minecraft:
    ShieldComa
    Вот бы мне так объясняли , а так все www.гугли.com )
     
  6. Nippels

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

    Баллы:
    21
    Имя в Minecraft:
    Nippels
    Просто я сам новичок и понимаю какого это искать и учиться, когда все только ссылками пичкают :Х
     
  7. ShieldComa

    ShieldComa Ньюби Пользователь

    Баллы:
    1
    Имя в Minecraft:
    ShieldComa
    Точно так же мне сказал один знакомый)
     
  8. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
  9. ShieldComa

    ShieldComa Ньюби Пользователь

    Баллы:
    1
    Имя в Minecraft:
    ShieldComa
    Ясно
     
  10. Nippels

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

    Баллы:
    21
    Имя в Minecraft:
    Nippels
    Это ответ от Google переводчика :Х Я решил так оставить, какая разница что в описании будет? Я его все равно не читаю =D
     
  11. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Ужас
     
  12. Автор темы
    ftaner1

    ftaner1 Активный участник

    Баллы:
    63
    вроде бы сделал, но пишет такой команды нет
     
  13. iD3LSY

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

    Баллы:
    46
    Имя в Minecraft:
    opy
    Не, извини, но гугл бы такое выдал только при запросе "Командование для администратора".

    Тут может быть ClassCastException
    Пишем:
    Код:
    if(!(sender instanceof Player)) {
        sender.sendMessage("§cТолько игрок может использовать эту команду!");
        return true;
    }
    Если указать там true, то при неверном кол-ве аргументов не выведет using команды из plugin.yml
    Ну и если хочешь в одну строку, то можно фигурные сборки не открывать (Это и к проверки на права можно сказать).

    Так же, если ты будешь так делать то можно заработать NumberFormatException
    Для этого юзаем:
    Код:
    int id = 0;
    try {
        int id = Integer.parseInt(str);
    } catch(NumberFormatException ex) {
        p.sendMessage("Неверно указан id предмета");
        return true;
    }
    Ну и тот момент, где и меня поправить успели до этого момента. Ты прикрепил JavaScript, а код от Java.

    Кстати, хочу сказать, что мой код тоже нисколько не гарантирует полную работоспособность, более того, я его писал без IDE.
     
  14. Nippels

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

    Баллы:
    21
    Имя в Minecraft:
    Nippels
    Спасибо. Учту, на счет "Командование для администратора" - набери в гугле: "КомандЯ для админа"
     
  15. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    NumberUtils.isNumber(string);
     
  16. iD3LSY

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

    Баллы:
    46
    Имя в Minecraft:
    opy
    Вообще хз, что это xD
     
  17. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    apache
     
  18. iD3LSY

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

    Баллы:
    46
    Имя в Minecraft:
    opy
    Я сразу же загуглил. Знаю уже)
     
  19. CristalixCoder

    CristalixCoder Ньюби

    Баллы:
    1
    Имя в Minecraft:
    TheZefirrkka
    Наоборот же?
     

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