Java Bukkit插件“无法解析为变量”

时间:2013-11-11 21:13:22

标签: java plugins bukkit

我在同一个包下面有两个类类名是“TestPlugin”和“Pokemon”。我得到的错误是在第7行的TestPlugin类中,其中写有“New Pokemon”。错误是“无法解析为变量”。我希望TestPlugin访问Pokemon中的代码,以便可以使用它。我该怎么做才能解决这个问题?新的bukkit插件创建所以不要让答案太高级请。 “我没有这个代码/插件。我只是出于教育目的!”。如果你想知道我正在使用什么bukkit libary,那就推荐构建“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());        
    }
}

2 个答案:

答案 0 :(得分:2)

将第7行更改为     this.getServer()。getPluginManager()。registerEvents(new Pokemon(this),this); 还考虑添加一个禁用

答案 1 :(得分:0)

你想打电话给Pokemon的构造函数,所以请使用 带括号的new Pokemon()

正如@ Welsar55所提到的,如果你在Pokemon构造函数中引用你的插件(Java插件的通用实践),那就使用new Pokemon(this),即你的Pokemon构造函数在哪里:

public Pokemon(TestPlugin myPlugin) {
    this.plugin = myPlugin;
}