1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Добавление пермишенов к командам и сообщение при его отсутствии у игрока

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

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

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

    Баллы:
    96
    Имя в Minecraft:
    Mr_Krab
    Пишу первый Hallo World свой. Учусь пока. В общем хочу добавить перм в сам класс на доступ к команде и сообщение для игрока, если перма у него нет. Можно конечно сделать пермы через Plugin.yml, но это будет не красиво совсем.
    Вот мой говнокод. Гуглил, но что-то не нашел как это сделать.

    Код:
    package mr_krab.halloworld;
    
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class plugin extends JavaPlugin {
        public boolean onCommand(CommandSender sender, Command cmd, String plugin,
                        String[] args) {
                if (cmd.getName().equals("test")) {
                                sender.sendMessage(ChatColor.GREEN
                                        + "Выдаваемое сообщение.\nУспешное выполнение команды.");
                                    }
                return true;                       
                }
        }
    
     
  2. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Код:
    if(!(sender instanceof Player)){
            sender.sendMessage("Only for players");
            return false;
    }
    
    Player p = (Player) sender;
    
    if(p.hasPermission("pluginname.command")){
          p.sendMessage("Shit code was passed");
    }
    
     
  3. Автор темы
    glavrak

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

    Баллы:
    96
    Имя в Minecraft:
    Mr_Krab
    Благодарю, сейчас уже времени нету, потом займусь. Хочу постепенно привести это дело к простенькому плагину со всего несколькими командами для хаба.
     
  4. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    И тебе Hallo :rolleyes:
     
  5. Slavkaa

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

    Баллы:
    76
    Имя в Minecraft:
    Slavok2001
    Ух, как же сложно читается твой код. Всегда делаю в одну строку, а ты их поразделял, вообще долго втыкал в него.
     
  6. Slavkaa

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

    Баллы:
    76
    Имя в Minecraft:
    Slavok2001
    Зачем так сложно?
    PHP:
    if(!s.hasPermission("permission")) {
    s.sendMessage("Недостаточно прав");
    return 
    true;
    }
     
  7. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Ну чек на консоль вообще практически везде нужен, а каст в плеере ему в любом случае пригодится
     
  8. Slavkaa

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

    Баллы:
    76
    Имя в Minecraft:
    Slavok2001
    Я не про консоль, а про то, что проверку на перм можно проще сделать, как я показал.
     
  9. Автор темы
    glavrak

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

    Баллы:
    96
    Имя в Minecraft:
    Mr_Krab
    Если рабочая область небольшая, то удобнее разделить.
     
  10. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Что делать проверку пермишена от сендера, что от игрока без разницы. Так как ему в любом случае понадобится плеер, то проверку на пермишен можно делать и от игрока
     
  11. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Почитай об code conventions
     
  12. Автор темы
    glavrak

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

    Баллы:
    96
    Имя в Minecraft:
    Mr_Krab
    Я имею ввиду на самом экране, не прокручивать же строку для ее просмотра.
     
  13. demkom

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

    Баллы:
    76
    Имя в Minecraft:
    G_demkom_G
    Пускай пишет как ему удобно, JVM все равно.
     
  14. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Ну можно еще и в одну строку все написать, почему бы и нет, но есть такая штука , как code conventions для того, чтобы другой человек мог прочитать код автора
     
  15. Slavkaa

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

    Баллы:
    76
    Имя в Minecraft:
    Slavok2001
    Ты опять не уловил, о чем я. Я имею ввиду, что сделать один блок с проверкой на отсутствие пермишина проще, чем делать с else
     
  16. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Ой ну если ты про это, то тут как по мне разницы вообще нет, да и вроде бы пример с else работает быстрее
     
  17. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Компилятуро насрать, одинакого будет goto в байткоде.
     

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