Подключение дочерних плагинов.

Discussion in 'Разработка плагинов' started by BlackJIeB, 27/2/16.

  1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
Dismiss Notice
We welcome you on our site. This site is devoted to the Nukkit project and all that is connected with him. Here you can communicate, download plugins, also many other things get acquainted! Register the account right now :3
  1. BlackJIeB

    BlackJIeB Developer

    Messages:
    16
    Likes Received:
    3
    Minecraft:
    BlackJIeB
    Добрый день, я тут озадачился подключением прочих плагинов через plugin manager.


    Моя переменная выглядит вот так:
    Code:
    Plugin owp = this.getServer().getPluginManager().getPlugin("owperms");
    Однако, после ее назначения не могу использовать функции из подключенного плагина по типу:
    Code:
    owp.getGroup(username);
    Притом, в php все делалось довольно просто:
    Code:
    $this->owp = $this->getServer()->getPluginManager()->getPlugin("owperms");
    
    $this->owp->getGroup($username);
    Может кто с таким сталкивался?
     
  2. xpyctum

    xpyctum Pioneer

    Messages:
    16
    Likes Received:
    1
    Minecraft:
    xpyctum
    Ну так и в чём проблема?
    Ход мыслей у тебя верный, всё должно работать.
     
  3. BlackJIeB

    BlackJIeB Developer

    Messages:
    16
    Likes Received:
    3
    Minecraft:
    BlackJIeB
    eclipse выдает ошибку. Хотя, компилировать я все же не пробовал.
     
  4. xpyctum

    xpyctum Pioneer

    Messages:
    16
    Likes Received:
    1
    Minecraft:
    xpyctum
  5. JustMaks19

    JustMaks19 Developer (Level 2)

    Messages:
    18
    Likes Received:
    2
    Minecraft:
    JustMaks19
    Боже, подумай логически, getPluginManager не возвращает какой либо класс, а всего лишь плагин.
    Создай объект класса плагина который подключаешь и будет тебе счастье.
     
  6. fromgate

    fromgate Administrator

    Messages:
    665
    Likes Received:
    186
    Ну не надо так категорично ;) Человек же учится. Насколько я понимаю в php вообще небыло такой проблемы как приведение типов (это ещё в коде наккита я кое-где встречал, например старый код Config (возможно там этого сейчас нет) при отсутсвии элемента вместо null возвращал... false. Даже если ты пытался вытащить оттуда String.

    @BlackJIeB
    По идее должно быть как так:

    Code:
    Plugin plg= this.getServer().getPluginManager().getPlugin("owperms");
    if (plg==null) {
    this.getLogger().info("Plugin OWPerms was not found");
    return;
    }
    Owperms owp= (Owperms) plg ; // Здесь Owperms - это класс стороннего плагина
    owp.getGroup(username);
    Кстати, если обращаетесь в к стороннему плагину из своего, то лучше это делать из друго класса, а не из родного класса плагина. Иначе, при отсутствии стороннего плагина получите ошибку.

    И не забудьте прописать в plugin.yml:
    Code:
    softdepend: [owperms]
    или
    Code:
    depend: [owperms]
    Depend используется если Ваш плагин без стороннего в принципе жить не может, softdepend - если может и обойтись (т.е. не будет использоваться возможности этого стороннего плагина, а будет делать что-то другое).
     
  7. BlackJIeB

    BlackJIeB Developer

    Messages:
    16
    Likes Received:
    3
    Minecraft:
    BlackJIeB
    Благодарю за подробное описание :)


    Вообще, на счет "логически подумай" от предыдущего комментатора - это не совсем по мне. Я знаю джаву на оочень плохо, я всю жизнь сидел на php, и освоение некоторых ее аспектов для меня не кажется таким простым.

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

    В любом случае, мне предстоит еще многому научиться.
     

Share This Page