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

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

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

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

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

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

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

    Trophy Points:
    1
    Имя в Minecraft:
    ShieldComa
  4. Nippels

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

    Trophy Points:
    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" на следующий код:
    Code:
    @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. Полный код:

    Code:
    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. Может не работать =/
     
    Last edited: Jul 1, 2017
  5. ShieldComa

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

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

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

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

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

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

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

    Trophy Points:
    96
    Имя в Minecraft:
    DonDays
  9. ShieldComa

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

    Trophy Points:
    1
    Имя в Minecraft:
    ShieldComa
    Ясно
     
  10. Nippels

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Trophy Points:
    96
    Имя в Minecraft:
    DonDays
    NumberUtils.isNumber(string);
     
  16. iD3LSY

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

    Trophy Points:
    46
    Имя в Minecraft:
    opy
    Вообще хз, что это xD
     
  17. DonDays

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

    Trophy Points:
    96
    Имя в Minecraft:
    DonDays
    apache
     
  18. iD3LSY

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

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

    CristalixCoder Ньюби

    Trophy Points:
    1
    Имя в Minecraft:
    TheZefirrkka
    Наоборот же?
     

Share This Page