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

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

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

  1. Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    https://hub.spigotmc.org/javadocs/bukkit/
    https://hub.spigotmc.org/javadocs/spigot/
    Конечно, HashMap<ключ, Integer[]>.
     
  2. Хостинг MineCraft
    <
  3. LightSunrider

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

    Баллы:
    78
    Имя в Minecraft:
    LightSunrider
  4. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
  5. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
  6. LightSunrider

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

    Баллы:
    78
    Имя в Minecraft:
    LightSunrider
  7. LightSunrider

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

    Баллы:
    78
    Имя в Minecraft:
    LightSunrider
    Мне нужно реализовать хранение информации как в БД на диске, в 3 колонки: Player и 2 Integer. Решил попробовать SQLite. Мне интересно мнение профессионалов. :) Как лучше реализовать это? Как я заметил в AuthMe всё это храниться как "user_name:password:ip:world:email" в простом файле.
     
  8. Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Пробуй SQLite, да. Я лично с ним ещё ни разу не сталкивался, но должно быть не сложнее, чем с мускулом :)
    Самый лучший способ — это сохранение по принципу дельта: передавать только разность, ведь в пересечении данные одинаковы. Сделай класс строки в БД, например
    Код:
    class Row
    {
       public int id;
       public String uuid;
       public int i1;
       public int i2;
    }
    Соответственно, заведи четыре колонки; id сделай primary_key not null unsigned auto_increment — по ней если что будет удобно ориентироваться. Всю работу с БД лучше делать в отдельном потоке, хотя, если это моменты включения и выключения, можно забить и делать последовательно. В общем, спрашивай и дерзай.
     
  9. LightSunrider

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

    Баллы:
    78
    Имя в Minecraft:
    LightSunrider
    Есть 2 вопроса :)
    1: Стоит ли пойти на уступки 1.5.2 и использовать ники игроков вместо UUID?
    2: Стоит ли поделить большой плагин на несколько частей? Я думаю что некоторые возможности будут нужны только определённым серверам, а некоторые могу конфликтовать с другими плагинами.
     
  10. Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    После 1.5.2 были 1.6, 1.7, 1.8, когда-то в будущем будут 1.9. Новые версии в любом случае вытеснят старые, вопрос времени. Хочешь ли ты тратить своё время на то, чтобы "догонять", или сразу начнёшь работать с новым и актуальным?
    Смотря какие это возможности. Зависит от конкретной реализации.
    Конфликтов быть не должно — нужно учитывать их возможность и автоматически предлагать либо готовое решение, либо чтобы администратор сервера выбрал то, что ему нужно.
     
  11. CrazyBear

    CrazyBear Участник

    Баллы:
    31
    Имя в Minecraft:
    hyper
    что нужно вписывать в плагине HubGadgetsPlus,помогите пожалуйста...
     
  12. Sonicxd2

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

    Баллы:
    76
    Не знал))
     
  13. Romac1s

    Romac1s Новичок

    Баллы:
    6
    Имя в Minecraft:
    Devineuh
    Ребят,у меня такая проблема собрал плагин без одной ошибки,закидываю плагин в папку plugins.Включаю сервер.Пишет в консоли плагин включен.Пишу в чат /pl зеленым цветом обозначен плагин.Но ивенты не работают.Я писал @EventHandler и прочие дела что это может быть или выложить скрины ?
     
  14. CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Эта тема не предназначена для исправления чужих ошибок. Используйте соответствующий раздел.
     
  15. ms2008

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

    Баллы:
    61
    Подскажите пожалуйста, как в NetBeans отключить добавление в файл Manifest.mf строк с указанием пути к библиотекам при сборке. Чтобы небыло строк Class-Path: и Main-Class:
     
  16. ql_Nik_lp

    ql_Nik_lp Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    1) О таком спрашивают в гугле или создают новую тему, но не в чужой
    2) Если мы говорим про Bukkit, то библиотеку стоит вшивать в плагин.
    3) Intellij Idea
    4) Intellij Idea
     
  17. ms2008

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

    Баллы:
    61
    Мне надо было просто чтоб при компиляции в файл Manifest.mf не прописывались пути к bukkit API. NetBeans, в отличие от Eclipse их туда вписывает по умолчанию. Никак не мог это выключить. Покопался в настройках и нашёл - нужно в файле project.properties выставить значение mkdist.disabled на true. Может кому пригодится.
    За Intellij Idea - спасибо, скачал, буду пробовать.
     
    Последнее редактирование: 12 май 2016
  18. hottabov

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

    Баллы:
    63
    Имя в Minecraft:
    hottabov
    Откуда только такие берутся?
     
  19. chief

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

    Баллы:
    76
    Как сократить данный код?
    Код:
    if(args.length == 0) {
      if(this.players.contains(p.getName())) {
        this.players.remove(p.getName());
        p.sendMessage(pvpoff);
        return true;
      }
      if(!this.players.contains(p.getName())) {
        this.players.add(p.getName());
        p.sendMessage(pvpon);
        return true;
      }
    } else if (args[0].equalsIgnoreCase("on")) {
       this.players.add(p.getName());
       p.sendMessage(pvpon);
       return true;
    } else if (args[0].equalsIgnoreCase("off")) {
       this.players.remove(p.getName());
       p.sendMessage(pvpoff);
       return true;
    } else {
    
    Я пробовал так
    Код:
    if (this.players.contains(p.getName()) || args[0].equalsIgnoreCase("on") {
       this.players.add(p.getName());
       p.sendMessage(pvpon);
       return true;
    } else if (this.players.contains(p.getName()) || args[0].equalsIgnoreCase("off") {
       this.players.remove(p.getName());
       p.sendMessage(pvpoff);
       return true;
    } else {
    
    но с этим вариантом у меня ничего не получилось
     
  20. kirill2011s

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

    Баллы:
    103
    Код:
    if (длина == 0 && игрок в списке || длина > 0 && команда off) {
    Действия для отключения
    } else if (длина == 0 && игрок не в списке || длина > 0 && команда on {
    Действия для включения
    }
    
     
  21. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    помоему так нужно.
     

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