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

Стартап Помощь новичкам и тем, кто мало писал плагины. (+ LifeHack'и)

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

  1. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Лучше такие плагины удалять/переписывать и их авторов гнать ссанными тряпками. Команды перезагрузки плагина/конфига должны быть доступны любому отправителю .-.
     
  2. Хостинг MineCraft
    <
  3. InterWall

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

    Баллы:
    173
    Имя в Minecraft:
    InterWall
    Народ, решил начать изучать разработку плагинов. Столкнулся с вопросом относительно maven, стоит ли его использовать? Часто вижу плагины с зависимостями через maven, но в этом вопросе пока мало чего понимаю. Может кто нибудь объяснить?
     
  4. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    maven используется для того, чтобы не таскать со своим проектом мегабайты библиотек. Т.е. если в твоём проекте guava + gson + commons + apache lang + vasya + petya, то просто указываешь в pom.xml что и какую версию загружать. В итоге ты получаешь проект весом в 100-200 кб, вместо 10-20 мб. Ну и так же у мавена есть плагины, которые помогают автоматизировать некоторую работу.
     
  5. InterWall

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

    Баллы:
    173
    Имя в Minecraft:
    InterWall
    Пытаясь анализировать код других плагинов (для примера AutoMessage) натыкаюсь на plugin:
    Код:
    public class AutoMessage extends JavaPlugin {
        public static AutoMessage plugin;
    
        @Override
        public void onEnable() {
            plugin = this;
            blablabla...
        }
    
        @Override
        public void onDisable() {
            MessageLists.unschedule();
    
            plugin = null;
        }
    }
    И plugin встречается только тут, больше его нигде не вызывают. Зачем оно надо?
     
  6. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    ну если он статический, то скорее всего его юзают другие классы.
     
  7. AtomicInteger

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

    Баллы:
    46
    Это так называемый mainInstance плагина.Ссылка на главный класс, его используют в других частях программы для получения разного рода информации, например конфига(plugin.getConfig()) или сервера(plugin.getServer).Так же, с помощью этой ссылки можно использовать методы главного класса, не создавая экземпляр главного класса(ибо при создании экземпляра главного класса плагина, вылетает ошибка, так как ты инициализируешь плагин в двух местах).А так, можно передать эту ссылку в параметры конструктора стороннего класса, и использовать нужные методы там.Некоторые делают константой, некоторые создают геттеры, по разному бывает.
     
  8. InterWall

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

    Баллы:
    173
    Имя в Minecraft:
    InterWall
    Спасибо. Зачекал остальные классы и увидел:
    Код:
    sender.sendMessage(CommandManager.getExtra() + "__________________.[ " + CommandManager.getHighlight() + AutoMessage.plugin.getName() + CommandManager.getExtra() + " ].__________________");
     
  9. Kurumi

    Kurumi Новичок

    Баллы:
    16
    Имя в Minecraft:
    Kurumi
    Подскажите новичку... Как сделать так, чтобы при нажатии игроком на табличку, ему давались деньги, но при повторном нажатии, ничего не происходило, или отправлялось сообщение... Я так понял что нужно юзать player.setMetadata, но я не совсем понял как его использовать.... подскажите нубу, плиз)
     
  10. MineWindows

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

    Баллы:
    61
    Имя в Minecraft:
    _MineWindows_
    Здравствуйте. Можете ли мне помочь с таким вопросом: "Как сделать, чтобы после выполнения действия шел отсчет времени, а после, действие снова выполнялось?
     
  11. lakumine

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

    Баллы:
    16
    Имя в Minecraft:
    dfdfsfwef
    Мне нужно что бы За мной постоянно летал армер стенд( не видимый) и на нём была голова(на армер стенде)
     
  12. Pinkierar

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

    Баллы:
    6
    Skype:
    metilan111
    Имя в Minecraft:
    Pinkierar
    Как получить все аргументы любой команды, которую отправила консоль?
     
  13. dead.diesel

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

    Баллы:
    66
    Имя в Minecraft:
    DeadDiesel
    Помогите с выдачей прав плагина essentials

    Есть, например, в pex две группы , админ и креатив, как можно сделать так, чтобы при выдаче права креативу essentials.gamemode, ему не выдавался режим приключений и режим наблюдателя? Ну и админу соответственно также.

    Право "-essentials.gamemode.creative" и т.д не помогает
     
  14. Danko

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

    Баллы:
    66
    Имя в Minecraft:
    Danko
    Допустим я делаю лаунчер и мне нужно узнать онлайн сервера, как это сделать?
     
  15. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Опрашиваешь сервер из лаунчера.
     
  16. wirgy

    wirgy Участник

    Баллы:
    31
    Имя в Minecraft:
    W1rgy
    как сделать чтобы привелегия писалась в чате?
     
  17. Slavchik2001

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

    Баллы:
    66
    Имя в Minecraft:
    Slavok2001
    Подскажите, пожалуйста, как сделать, чтобы при ударе игрока, что-либо выполнялось. Какой эвент и какое условие?
     
  18. _MasterCapeXD_

    _MasterCapeXD_ Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    _MasterCapeXD_
    EntityDamageByEntityEvent
    Коротенький пример:
    Код:
        
        @EventHandler
        public void on(EntityDamageByEntityEvent e)
        {
            Player p = (Player) e.getDamager();
           
            if(e.getEntityType() == EntityType.PLAYER)
            {
                String name = e.getEntity().getName();
               
                p.sendMessage("Вы ударили игрока " + name);
            }
        }
    
     
    Последнее редактирование: 6 май 2017
  19. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Я дамагер, и я - кактус. Слови ClassCastException.
     
  20. xDark

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    ^^
     
  21. Blc_Dragon

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    это EntityDamageByBlockEvent.
    (а теперь ты берешь удочку\лук\снежок\превращаешься в крипера)
     

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