0

我在同一个包下有两个类类名是“TestPlugin”和“Pokemon”。我得到的错误是在第 7 行的 TestPlugin 类中,那里写着“新口袋妖怪”。错误是“无法解析为变量”。我希望 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());        
    }
}
4

2 回答 2

2

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

于 2013-11-11T23:12:09.137 回答
0

你想调用 Pokemon 的构造函数,所以使用 new Pokemon()括号。

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

public Pokemon(TestPlugin myPlugin) {
    this.plugin = myPlugin;
}
于 2013-11-14T22:54:41.497 回答