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

BlackJIeB

Developer
Добрый день, я тут озадачился подключением прочих плагинов через 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);
Может кто с таким сталкивался?
 

xpyctum

Pioneer
Ну так и в чём проблема?
Ход мыслей у тебя верный, всё должно работать.
 

BlackJIeB

Developer
Ну так и в чём проблема?
Ход мыслей у тебя верный, всё должно работать.
eclipse выдает ошибку. Хотя, компилировать я все же не пробовал.
 

JustMaks19

Developer (Level 2)
eclipse выдает ошибку. Хотя, компилировать я все же не пробовал.
Боже, подумай логически, getPluginManager не возвращает какой либо класс, а всего лишь плагин.
Создай объект класса плагина который подключаешь и будет тебе счастье.
 

fromgate

Administrator
Боже, подумай логически, getPluginManager не возвращает какой либо класс, а всего лишь плагин.
Создай объект класса плагина который подключаешь и будет тебе счастье.
Ну не надо так категорично ;) Человек же учится. Насколько я понимаю в php вообще небыло такой проблемы как приведение типов (это ещё в коде наккита я кое-где встречал, например старый код Config (возможно там этого сейчас нет) при отсутсвии элемента вместо null возвращал... false. Даже если ты пытался вытащить оттуда String.


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

Java:
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 - если может и обойтись (т.е. не будет использоваться возможности этого стороннего плагина, а будет делать что-то другое).
 

BlackJIeB

Developer
Благодарю за подробное описание :)

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

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

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