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

  • Автор темы Автор темы ftaner1
  • Дата начала Дата начала

ftaner1

Активный участник
Баллы
63
можете подсказать скрипт, при котором при определенной команде будет выдаваться нужная вещь?
так же чтобы был пермишен, который отвечал за эту команду
 
Подробный туториал.

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

2. В plugin.yml должно быть так:
2.png


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

4. В admin замени "public boolean onCommand" на следующий код:
JavaScript:
@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. Полный код:

JavaScript:
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. В главном классе впиши это: getCommand("give").setExecutor(new admin(this));
give (любая команда, может быть заменена на свою)
admin(название класса, в котором будет выполняться команда)

2. В plugin.yml должно быть так:
2.png


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

4. В admin замени "public boolean onCommand" на следующий код:
JavaScript:
@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, которого нет в майне :Х, скорее всего выдаст ошибку или вообще крашнит все к чертям, короче это пример выполнения обычной команды, подстрой под себя и все :Х
P.S. Может не работать =/
Вот бы мне так объясняли , а так все www.гугли.com )
 
Commanding, ору

Это вообще не причем, даже подправлять не надо
Это ответ от Google переводчика :Х Я решил так оставить, какая разница что в описании будет? Я его все равно не читаю =D
 
Подробный туториал.

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

2. В plugin.yml должно быть так:
2.png


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

4. В admin замени "public boolean onCommand" на следующий код:
JavaScript:
@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. Полный код:

JavaScript:
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. Может не работать =/
вроде бы сделал, но пишет такой команды нет
 
Это ответ от Google переводчика :Х Я решил так оставить, какая разница что в описании будет? Я его все равно не читаю =D
Не, извини, но гугл бы такое выдал только при запросе "Командование для администратора".

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

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

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

Тут может быть ClassCastException

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

Ну и если хочешь в одну строку, то можно фигурные сборки не открывать (Это и к проверки на права можно сказать).

Так же, если ты будешь так делать то можно заработать NumberFormatException

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

Кстати, хочу сказать, что мой код тоже нисколько не гарантирует полную работоспособность, более того, я его писал без IDE.
Спасибо. Учту, на счет "Командование для администратора" - набери в гугле: "КомандЯ для админа"
 
Назад
Верх