Плагин Java Bukkit не может быть преобразован в переменную

У меня есть два класса в одном и том же пакете. Имена классов: «TestPlugin» и «Pokemon». Ошибка, которую я получаю, находится в классе TestPlugin в строке 7, где написано «Новый покемон». Ошибка "Не может быть разрешена в переменную". Я хочу, чтобы TestPlugin получил доступ к коду в Pokemon, чтобы его можно было использовать. Что мне делать, чтобы решить эту проблему? Новичок в создании плагина bukkit, поэтому, пожалуйста, не делайте ответ слишком сложным. «Я не владею этим кодом/плагином. Я использую его только в образовательных целях!». Если вам интересно, какую библиотеку bukkit я использую, это рекомендуемая сборка «craftbukkit-1.6.4-R2.0».

Код TestPlugin:

package com.hotmail.marrunsilkeborg.plugins.testplugin;

import org.bukkit.plugin.java.JavaPlugin;   

public class TestPlugin extends JavaPlugin{
    public void onEnable(){
        getServer().getPluginManager().registerEvents(new Pokemon, this);

    }
}

Код покемона:

package com.hotmail.marrunsilkeborg.plugins.testplugin;

import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPlaceEvent;

public class Pokemon implements Listener{

    @EventHandler
    public void onBlockPlace(BlockPlaceEvent event){
        Player p = event.getPlayer();
        Block bp = event.getBlockPlaced();


        p.sendMessage("You've placed a " + bp.getType().toString());        
    }
}

person user2980718    schedule 11.11.2013    source источник


Ответы (2)


Измените строку 7 на this.getServer().getPluginManager().registerEvents(новый покемон(это), это); также подумайте о добавлении отключения

person Welsar55    schedule 11.11.2013

Вы хотели вызвать конструктор Pokemon, поэтому используйте new Pokemon() в скобках.

Как упоминалось в @Welsar55, используйте new Pokemon(this), если вы ссылаетесь на свой плагин в конструкторе Pokemon (обычная практика для плагинов Java), то есть там, где находится ваш конструктор Pokemon:

public Pokemon(TestPlugin myPlugin) {
    this.plugin = myPlugin;
}
person Slate    schedule 14.11.2013