Java NullPointException Bukkit插件

用户名

尝试在bukkit服务器中加载插件时出现NullPointerException异常,但是在Eclipse中没有错误。我的插件是Rush插件,很多东西都没有使用/丢失。错误是这样的:

[18:11:10] [Server thread/ERROR]: Could not load 'plugins\rush.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.NullPointerException
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:182) ~                          [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:308) ~  [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:231) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at org.bukkit.craftbukkit.v1_7_R1.CraftServer.loadPlugins(CraftServer.java:255) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at org.bukkit.craftbukkit.v1_7_R1.CraftServer.<init>(CraftServer.java:233) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at net.minecraft.server.v1_7_R1.PlayerList.<init>(PlayerList.java:63) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at net.minecraft.server.v1_7_R1.DedicatedPlayerList.<init>(SourceFile:14) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at net.minecraft.server.v1_7_R1.DedicatedServer.init(DedicatedServer.java:126) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:424) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
Caused by: java.lang.NullPointerException
at me.mailh.Rush.MainRush.<init>(MainRush.java:62) ~[?:?]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.7.0_45]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.7.0_45]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~  [?:1.7.0_45]
at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.7.0_45]
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:178) ~  [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
... 9 more

这是我的代码:

package me.mailh.Rush;

import java.io.File;
import java.util.logging.Logger;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.WorldCreator;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.ScoreboardManager;
import org.bukkit.scoreboard.Team;

public  class  MainRush extends JavaPlugin implements Listener{


public final Logger logger = Logger.getLogger("Minecraft");
public static MainRush plugin;





public void onEnable(){
    this.logger.info("Rush is enabled.");
    getServer().getPluginManager().registerEvents(this, this);
}


    private  ScoreboardManager manager = Bukkit.getScoreboardManager();
    private Scoreboard board = manager.getNewScoreboard();
    private  Team bleu = board.registerNewTeam("bleu");
    private  Team orange = board.registerNewTeam("orange");


public void onDisable(){
    this.logger.info("Rush is disabled.");
}



public boolean onCommand(CommandSender s, Command c, String lbl, String[] args){
    Player pl = (Player) s;
    if (lbl.equalsIgnoreCase("rush")){
        if (args.length == 0){ 
        World w = Bukkit.getWorld("rush");


        Location rush = new Location( w, -210, 51, -8 );
        pl.sendMessage(ChatColor.GOLD + "Teleportation...");
        pl.teleport(rush);
        } 

        if (args[0].equalsIgnoreCase("bleu")){
            board.resetScores(pl.getPlayer());
            orange.removePlayer(pl.getPlayer());
            bleu.addPlayer(pl.getPlayer());
            pl.sendMessage(ChatColor.AQUA + "Vous êtes dans l'équipe bleu");
            bleu.setAllowFriendlyFire(false);

            }
        if (args[0].equalsIgnoreCase("leave")){
            board.resetScores(pl.getPlayer());
            bleu.removePlayer(pl.getPlayer());
            orange.removePlayer(pl.getPlayer());
            pl.sendMessage(ChatColor.RED + "Vous avez quitté votre équipe");

        }
        if (args[0].equalsIgnoreCase("orange")){
            board.resetScores(pl.getPlayer());
            bleu.removePlayer(pl.getPlayer());
            orange.addPlayer(pl.getPlayer());
            pl.sendMessage(ChatColor.GOLD + "Vous êtes dans l'équipe orange");
            orange.setAllowFriendlyFire(false);

        }

        }


    return true; 
    }
public  void rollback(){
if(Bukkit.getServer().unloadWorld("rush",false))
{
new File("rush").delete();
Bukkit.getServer().createWorld(new WorldCreator("rush"));
}
}




 @EventHandler
 public void onLeave(PlayerQuitEvent e){
 Player p = (Player) e.getPlayer();
    bleu.removePlayer(p);
    orange.removePlayer(p);
    board.resetScores(p);

 }
 @EventHandler
 public void Death(PlayerDeathEvent event){
 if (event.getEntityType() == EntityType.PLAYER){
 Player player = event.getEntity();
    Team team = board.getPlayerTeam(player);
 if(team.equals(bleu)){
 player.sendMessage("did it work? bleu");  
 }
 else if (team.equals(orange)){
 player.sendMessage("did it work orange?");
 }
 }
 }
 }
约乔莫

在此代码看来:

private ScoreboardManager manager = Bukkit.getScoreboardManager();
private Scoreboard board = manager.getNewScoreboard();

原因是您没有在方法内部声明这些变量,因此,它们会在onEnable()调用您的方法之前加载,从而使您无法使用任何东西Bukkit,因为Bukkit尚未初始化。

我建议做的是在任何方法之外做这样的事情

private ScoreboardManager manager;
private Scoreboard board;

然后在您的onEnable()

manager = Bukkit.getScoreboardManager();
board = manager.getNewScoreboard();

所以你会有这样的事情:

public class MainRush extends JavaPlugin implements Listener{

    private ScoreboardManager manager;
    private Scoreboard board;

    @Override
    public void onEnable(){
        //plugin enabled
        manager = Bukkit.getScoreboardManager();
        board = manager.getNewScoreboard();
    }
}

通过这样做,您消除了NullPointerException加载插件时获得提示的机会作为一般的经验法则,永远不要从方法之外的bukkit获得任何东西。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

java.lang.IndexOutOfBoundsException错误Bukkit插件

来自分类Dev

我的世界的Java编程Bukkit插件

来自分类Dev

使用 FileWriter 的 java.lang.NullPointException

来自分类Dev

创建权限插件(aplugin。*)-Spigot / Bukkit-Java

来自分类Dev

如何在Bukkit /插件编程中解决此错误:java:找不到符号构造函数CommandExecute()

来自分类Dev

Java-Bukkit / Spigot *如何使我的插件需要密码才能启动和运行?*

来自分类Dev

Bukkit插件的TCP连接

来自分类Dev

自定义适配器getView中的Java.lang.NullPointException

来自分类Dev

如何首先启用bukkit插件?

来自分类Dev

RecyclerView中的setLayoutManager NullPointException

来自分类Dev

RecyclerView中的NullPointException

来自分类Dev

@Inject @ThirteenNumber 抛出 NullPointException

来自分类Dev

获取Java.lang.NullPointException,同时获取用于夸大自定义颜色的ActionBar标题ID

来自分类Dev

参考价目表-Bukkit插件

来自分类Dev

Bukkit插件-监听器未运行?

来自分类Dev

创建Bukkit插件时Maven错误

来自分类Dev

Minecraft Bukkit API插件启用时崩溃

来自分类Dev

Bukkit插件EventHandler注册表错误

来自分类Dev

NullPointException和对象数组的长度

来自分类Dev

Bukkit Java编码,夜间检查器

来自分类Dev

单独服务器上Bukkit插件之间的通信

来自分类Dev

单独服务器上Bukkit插件之间的通信

来自分类Dev

Mc Bukkit Heal插件提供/ usage而不是命令

来自分类Dev

在Minecraft Bukkit插件中构建金字塔

来自分类Dev

bukkit 插件内的套接字在使用后关闭

来自分类Dev

Book对象程序中的NullPointException错误

来自分类Dev

Android片段替换为参数nullpointexception

来自分类Dev

测试文件是否存在但获取nullpointexception

来自分类Dev

使用CardView的RecyclerView中的setLayoutManager NullPointException

Related 相关文章

  1. 1

    java.lang.IndexOutOfBoundsException错误Bukkit插件

  2. 2

    我的世界的Java编程Bukkit插件

  3. 3

    使用 FileWriter 的 java.lang.NullPointException

  4. 4

    创建权限插件(aplugin。*)-Spigot / Bukkit-Java

  5. 5

    如何在Bukkit /插件编程中解决此错误:java:找不到符号构造函数CommandExecute()

  6. 6

    Java-Bukkit / Spigot *如何使我的插件需要密码才能启动和运行?*

  7. 7

    Bukkit插件的TCP连接

  8. 8

    自定义适配器getView中的Java.lang.NullPointException

  9. 9

    如何首先启用bukkit插件?

  10. 10

    RecyclerView中的setLayoutManager NullPointException

  11. 11

    RecyclerView中的NullPointException

  12. 12

    @Inject @ThirteenNumber 抛出 NullPointException

  13. 13

    获取Java.lang.NullPointException,同时获取用于夸大自定义颜色的ActionBar标题ID

  14. 14

    参考价目表-Bukkit插件

  15. 15

    Bukkit插件-监听器未运行?

  16. 16

    创建Bukkit插件时Maven错误

  17. 17

    Minecraft Bukkit API插件启用时崩溃

  18. 18

    Bukkit插件EventHandler注册表错误

  19. 19

    NullPointException和对象数组的长度

  20. 20

    Bukkit Java编码,夜间检查器

  21. 21

    单独服务器上Bukkit插件之间的通信

  22. 22

    单独服务器上Bukkit插件之间的通信

  23. 23

    Mc Bukkit Heal插件提供/ usage而不是命令

  24. 24

    在Minecraft Bukkit插件中构建金字塔

  25. 25

    bukkit 插件内的套接字在使用后关闭

  26. 26

    Book对象程序中的NullPointException错误

  27. 27

    Android片段替换为参数nullpointexception

  28. 28

    测试文件是否存在但获取nullpointexception

  29. 29

    使用CardView的RecyclerView中的setLayoutManager NullPointException

热门标签

归档